-3

许多答案都指出:当我们使用 layout_weight 时,我们应该设置 layout_height="0dp",如果我们设置 layout_height="fill_parent",结果不是我们的预期。在 OnMeasure 中 layout_height="fill_parent" 做了什么?谁能解释一下?对不起。这是我第一次提问。场景如下:

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="50dp"
    android:orientation="horizontal" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="2"
        android:background="#a00"
        android:text="r" />

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="3"
        android:background="#0a0"
        android:text="g" />

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="#00a"
        android:text="b" />
</LinearLayout>
4

2 回答 2

0
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="50dp"
android:orientation="vertical" >

<TextView
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:layout_weight="1"
    android:background="#a00"
    android:text="r" />

<TextView
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:layout_weight="1"
    android:background="#0a0"
    android:text="g" />

<TextView
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:layout_weight="1"
    android:background="#00a"
    android:text="b" />

现在这里 weight 1 会给他们相等的空间,你可以根据你的要求修改它

于 2013-02-01T05:31:02.480 回答
0

没有任何代码,很难帮助你,但我会试一试。

首先,layout_weight是一个仅适用于 LinearLayout(及其子类)的属性。如果您使用任何其他 ViewGroup 作为父级,它将不起作用。

layout_weight是用来划分UNUSED空间。在布局完所有其他子节点后,具有 layout_weight 的子节点将根据权重占用剩余的可用空间。这就是为什么人们经常建议layout_height="0dp"在使用layout_gravity. 这意味着在完成其他所有操作之前它不会占用任何空间。如果你有一个孩子填补它的父母,那么就没有任何空间可以分割了。

希望这将帮助您了解如何layout_weight更好地使用。

于 2013-02-01T04:40:04.503 回答