我有一个奇怪的情况。我有一个相对简单的布局,有一些行和一个图像。
我的布局看起来像这样(高级绘图):
红色方块是 ImageView,其他是 LinearLayouts 和 TextViews。我的问题是,如果我使用 Java 代码 (setImageBitmap) 来更新红色 ImageView 的位图图像,那么 Text 3 的 LinearLayout 的权重似乎消失了,它的高度将等于 Text 3 的 TextView 的高度。
就像在这个模型上一样(绿色方块是新图像):
Text 3 的 LinearLayout 的 Weight 设置为 1,因此它的高度将强制 Text 4 的 LinearLayout 被推到屏幕底部。所以 Text 4 不会再在底部了,它会在 Text 3 的 LinearLayout 的底部之后立即跳转。
这是我的布局xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/MainLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Text 1" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<TextView
android:id="@+id/text2text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text 2" />
</LinearLayout>
<ImageView
android:id="@+id/Pic2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/timage" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/Text3Container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text 3" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1" >
<TextView
android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text 4" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
看起来我使用了一些我不应该使用的线性布局,但它在实际布局中包含更多元素,我只是将它剥离了一点,以便在这里更简单地分析。但通常这是我的 xml。
你们有什么建议为什么会发生这种情况?我还尝试将图像放入 FrameLayout 中,同样...
谢谢!