如果我有 2 个 LinearLayouts 拆分 %50/%50 一切都很好。权重是 1 和 1。只要我在顶部 LinearLayout 中添加一个 TextView,它就会拉伸该布局。wrap_content
当涉及到权重时,我应该按照文档中所说的那样使用。
如您所见,红色和绿色应均匀分割,灰色背景上的文本应位于红色框内。这是代码:
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#ff0000"
>
<TextView
android:text="@string/hello"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#cccccc"
android:textColor="#000000"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="#00ff00"
>
</LinearLayout>
现在,如果我按如下方式切换到“填充父级”,它实际上可以工作,但会产生另一个问题。这是代码(到目前为止很好):
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:background="#ff0000"
>
<TextView
android:text="@string/hello"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#cccccc"
android:textColor="#000000"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:background="#00ff00"
>
</LinearLayout>
所以看上面我们被迫使用fill_parent
,我们会认为我们解决了问题,但如果我们正在使用这就是问题fill_parent
(我拿出 TextView 只是为了显示问题,TextView 无论如何都不会让问题消失) :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="3"
android:background="#ff0000"
>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="2"
android:background="#00ff00"
>
</LinearLayout>
</LinearLayout>
如您所见,我分配了权重 3(顶部红色)和 2(底部绿色),但实际发生的是它们被翻转:红色变为 2,底部变为 3。只需测量像素也可以看到。
以下是 3 个代码的结果:
为了清楚起见,每次布局都包含在这个(顶部布局)中:
android:layout_width="fill_parent"
android:layout_height="fill_parent"
使用 XMLversion="1.0" encoding="utf-8"
和适当的命名空间。