2

在下面的代码中,我在 LinearLayout 中使用 layout_weight=1 和 layout_width(或 layout_height)等于 0 的组合。一个问题是为什么在第二个 LinearLayout 中,第二个按钮和第一个按钮不占用相等的空间?它们具有相同的权重 (layout_weight=1),因此它们应该具有相同的空间。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout01"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/TextView02"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1.0"
        android:text="wreoiwe roiwej roiwejr weoirjweoirjwoeirjoweijrowerjowejorjweoirjwoeiwoi" >
    </TextView>

    <LinearLayout
        android:id="@+id/LinearLayout02"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/Button01"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1.0"
            android:text="Submit" >
        </Button>

        <Button
            android:id="@+id/Button02"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1.0"
            android:text="Cancelrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr" >
        </Button>
    </LinearLayout>
</LinearLayout>
4

2 回答 2

4

这是因为第二LinearLayoutwrap_content,这不是如何layout_weight工作的。

从文档:

较大的权重值允许它扩展以填充父视图中的任何剩余空间。

与你LinearLayoutwrap_content而不是填满整个屏幕,父视图中没有更多的“剩余空间”。一切都与它应该的一样大。它不会扩展较小的按钮,因为父级在wrap_content没有更多空间可以扩展。

您可以通过将第二个更改为来测试它LinearLayoutmatch_parent您将看到每个按钮占据屏幕的一半。

于 2013-06-30T09:53:42.240 回答
2

如果你想有一行文本视图和下一行两个 bottons 占据总宽度的 50% 你必须放在你的第二个线性布局上

android:layout_width="fill_parent"

于 2013-06-30T09:53:50.897 回答