带有wrap_content宽度的元素占父级的全宽

时间:2015-09-29 16:45:34

标签: android android-linearlayout

我有以下布局XML。不确定为什么第三个TextView在布局中根本不可见。有人能指出原因吗?

布局XML的相关部分 -

<LinearLayout
    android:id="@+id/layout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_toLeftOf="@+id/layout0"
    android:layout_toStartOf="@+id/layout0"
    android:layout_toRightOf="@+id/imageMain1"
    android:layout_toEndOf="@+id/imageMain1"
    android:gravity="center_vertical"
    android:orientation="vertical"
    android:paddingBottom="6dp"
    android:paddingTop="6dp">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:maxLines="1"
        android:paddingBottom="2dp"
        android:text="@string/dummy_long"
        android:textColor="?android:textColorPrimary"
        android:textSize="16sp"/>

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

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="8dp"
            android:layout_marginEnd="8dp"
            android:maxLines="1"
            android:text="@string/dummy_paragraph"
            android:textColor="?android:attr/textColorTertiary"
            android:textSize="14sp"/>

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:maxLines="1"
            android:text="@string/dummy"
            android:textColor="?android:attr/textColorTertiary"
            android:textSize="14sp"/>

    </LinearLayout>

</LinearLayout>

更新

最后结束使用此解决方案 - 最后使用此结果 - https://stackoverflow.com/a/17657154/1086930

2 个答案:

答案 0 :(得分:1)

为每个TextView添加WeightSum="2" LinearLayoutlayout_weight="1",如下所示      

        <TextView
            android:id="@+id/textView2"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:layout_marginRight="8dp"
            android:layout_marginEnd="8dp"
            android:maxLines="1"
            android:text="@string/dummy_paragraph"
            android:textColor="?android:attr/textColorTertiary"
            android:textSize="14sp"/>

        <TextView
            android:id="@+id/textView3"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:maxLines="1"
            android:text="@string/dummy"
            android:textColor="?android:attr/textColorTertiary"
            android:textSize="14sp"/>

    </LinearLayout>

答案 1 :(得分:1)

您可以使用@rajan答案中提到的> head(begin_end) begin final 1 60507 60551 2 60790 60840 3 62004 62051 4 62819 62868 5 65141 65187 ,但分配不均等。例如:

layout_weight

或者使用<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:weightSum="1"> <TextView android:id="@+id/textView2" android:layout_width="0dp" android:layout_weight="0.7" android:layout_height="wrap_content" android:layout_marginRight="8dp" android:layout_marginEnd="8dp" android:maxLines="1" android:text="@string/dummy_paragraph" android:textColor="?android:attr/textColorTertiary" android:textSize="14sp"/> <TextView android:id="@+id/textView3" android:layout_width="0dp" android:layout_weight="0.3" android:layout_height="wrap_content" android:maxLines="1" android:text="@string/dummy" android:textColor="?android:attr/textColorTertiary" android:textSize="14sp"/> </LinearLayout> 作为父级并使用对象。例如:

RelativeLayout