Android Linearlayout重量怪异

时间:2015-09-24 00:23:11

标签: android android-layout

我对这个简单的布局有疑问:

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/editText1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="10"
            android:ems="10"
            android:hint="Title" >

            <requestFocus />
        </EditText>

        <EditText
            android:id="@+id/editText2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="45"
            android:ems="10"
            android:hint="First Name" />

        <EditText
            android:id="@+id/editText3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="45"
            android:ems="10"
            android:hint="Last Name" />

    </LinearLayout>

正如您所看到的,这应该将屏幕拆分为10-45-45,但布局如下:

enter image description here

这似乎只是EditTexts的一个问题。

2 个答案:

答案 0 :(得分:1)

你去吧 -

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <EditText
        android:id="@+id/editText1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="10"
        android:ems="10"
        android:hint="Title" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="45"
        android:ems="10"
        android:hint="First Name" />

    <EditText
        android:id="@+id/editText3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="45"
        android:ems="10"
        android:hint="Last Name" />

</LinearLayout>

我将android:layout_width设置为0dp。在使用权重时使用水平方向的LinearLayout时,需要将android:layout_width设置为0dp,当方向为垂直时,需要将android:layout_height设置为0dp,以使权重生效。希望它有所帮助。

答案 1 :(得分:1)

只需使用

android:layout_width="0dp"

而不是

android:layout_width="wrap_content"