layout_weight = 1.0没有效果

时间:2012-10-04 12:12:14

标签: android android-layout

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

    <TextView
        android:id="@+id/tv_label_client_host"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:text="@string/label_host" />
    <EditText
        android:id="@+id/et_client_host"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:ems="10" 
        android:inputType="text"
        android:layout_weight="1.0"
        android:lines="1" />
</LinearLayout>

我希望EditText以水平方式填充剩余的整个空间,但TextViewEditText获得1/2可用空间。此LinearLayout位于另一个垂直LinearLayout内。

5 个答案:

答案 0 :(得分:1)

删除

   android:ems="10"

对于所有元素,我在这里测试过并且有效。

答案 1 :(得分:0)

将TextView的宽度设置为0dp ....

答案 2 :(得分:0)

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

    android:weightSum="1"
>

    <TextView
        android:id="@+id/tv_label_client_host"
        android:layout_weight="0"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:ems="10"
        android:text="@string/label_host" />
    <EditText
        android:id="@+id/et_client_host"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:ems="10" 
        android:inputType="text"
        android:layout_weight="1"
        android:lines="1" />
</LinearLayout>

答案 3 :(得分:0)

您必须为布局中的每个组件赋予权重。这样,它就会知道每个人的体重是多少。所以你可以试试这个:

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

    <TextView
        android:id="@+id/tv_label_client_host"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:layout_weight="0.3"
        android:text="@string/label_host" />
    <EditText
        android:id="@+id/et_client_host"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:ems="10" 
        android:inputType="text"
        android:layout_weight="0.7"
        android:lines="1" />
</LinearLayout>

答案 4 :(得分:0)

如果可能,请从TextView中删除android:ems="10" 并将TextView的权重添加到android:layout_weight="0"