Android - 限制空间以获取双方的match_parent和视图

时间:2016-08-12 14:40:01

标签: java android xml layout

我有一个水平linearLayout,包括TextView,EditText和另一个EditText。 两个TextView都设置为wrap_content的宽度和高度。 EditText的高度为wrap_content,宽度为match_parent。

我的目标是让这三个视图在一行中填满整行。 但是通过上面的书面设置,我有第一个TextView占用了所需的空间,EditText填充了其余的空间,没有为其他TextView保留空间。

我通过将TextViews的layout_weight设置为0并将EditText设置为500来实现临时解决方案,我确信这不是真正的解决方案。

编辑:当前布局:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/linearLayoutWeight"
    android:orientation="horizontal">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Gewicht:"
        android:id="@+id/lblWeight"
        android:layout_alignParentStart="true"
        android:textColor="@color/mainForeground"
        android:textSize="24dp"
        android:layout_weight="1"
        android:textStyle="bold" />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtWeight"
        android:layout_alignBottom="@+id/textView"
        android:layout_toEndOf="@+id/textView"
        android:textAlignment="center"
        android:hint="60"
        android:textSize="24dp"
        android:textColor="@color/mainForeground"
        android:textColorHint="@color/hintColor"

        android:layout_weight="500"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/lblUnitWeight"
        android:textColor="@color/mainForeground"
        android:textSize="24dp"
        android:layout_weight="1"
        android:text="g." />
</LinearLayout>

3 个答案:

答案 0 :(得分:1)

使用layout_weight确定每个视图的宽度。根据您的需要更新重量值。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/linearLayoutWeight"
    android:orientation="horizontal">
    <TextView
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="Gewicht:"
        android:id="@+id/lblWeight"
        android:layout_alignParentStart="true"
        android:textColor="@color/mainForeground"
        android:textSize="24dp"
        android:layout_weight="1"
        android:textStyle="bold" />

    <EditText
        android:layout_width="0dp"
        android:layout_weight="2"
        android:layout_height="wrap_content"
        android:id="@+id/txtWeight"
        android:layout_alignBottom="@+id/textView"
        android:layout_toEndOf="@+id/textView"
        android:textAlignment="center"
        android:hint="60"
        android:textSize="24dp"
        android:textColor="@color/mainForeground"
        android:textColorHint="@color/hintColor"

        android:layout_weight="500"/>
    <TextView
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:id="@+id/lblUnitWeight"
        android:textColor="@color/mainForeground"
        android:textSize="24dp"
        android:layout_weight="1"
        android:text="g." />
</LinearLayout>

答案 1 :(得分:1)

我有点消费,但这是你想要的吗?

enter image description here

for i in CheckList.split("|"):
    for j in box:
        if i.split(",")[0] == j

试试这个,它应该可以正常工作。

答案 2 :(得分:0)

您可以使用:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/linearLayoutWeight"
    android:orientation="horizontal">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Gewicht:"
        android:id="@+id/lblWeight"
        android:layout_alignParentStart="true"
        android:textColor="@color/mainForeground"
        android:textSize="24dp"
        android:textStyle="bold" />

    <EditText
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:id="@+id/txtWeight"
        android:layout_alignBottom="@+id/textView"
        android:layout_toEndOf="@+id/textView"
        android:textAlignment="center"
        android:hint="60"
        android:textSize="24dp"
        android:textColor="@color/mainForeground"
        android:textColorHint="@color/hintColor"
        android:layout_weight="500"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/lblUnitWeight"
        android:textColor="@color/mainForeground"
        android:textSize="24dp"
        android:text="g." />

</LinearLayout>