三个TextView和#1,#3可以有不同的大小。如果内容较少,如何让其他部分获得更多空间?
部分#2,#3应该在第1部分旁边流动。
+ --------------------------------- +
aaa | b | cccccccccccccccccc ...
+ --------------------------------- +
+ ---------------------------------- +
aaa aaa aaaaaa ... | b | CCCCCCCC ...+ --------------------------------- +
+ --------------------------------- +
aaa aaa aaaaaa aaaaaaaa ... | b | ç+ --------------------------------- +
试过这个,但必须使用maxWidth来获得#1部分,并且如果第3部分的内容较少,则会浪费部分#3的空间。
有更好的方法吗?
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="36dp"
>
<TextView
android:id="@+id/part_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="150dp"
android:singleLine="true"
android:ellipsize="end"
/>
<TextView
android:id="@+id/part_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="3dp"
android:layout_marginLeft="3dp"
android:text="::"
android:layout_toRightOf="@+id/part_1"
/>
<TextView
android:id="@+id/part_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="end"
android:layout_toRightOf="@+id/part_2"
/>=
</RelativeLayout>
答案 0 :(得分:0)
您需要使用LinearLayout
ViewGroup和layout_weight属性。
例如:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:id="@+id/A"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/B"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/C"/>
</LinearLayout>
在此示例中,C TextView将是内容的宽度。 A TextView将是剩余宽度的66%(3个总重量中的2个),B TextView将占据宽度的最后34%(3个总重量中的1个)。 您必须使用LinearLayout,因为它是唯一支持layout_weight的ViewGroup。
答案 1 :(得分:0)
尝试这样做:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/part_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true" />
<TextView
android:id="@+id/part_2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginLeft="3dp"
android:layout_marginRight="3dp"
android:text="::" />
<TextView
android:id="@+id/part_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true" />
</LinearLayout>