我需要使用4 TextView进行布局。
第一个TextView位于屏幕的左边界,第二个TextView可能有不同的大小,第二个TextView位于第二个textView之后,第四个TextView位于屏幕的右边界。
如果第二个TextView很短,则在第三个TextView之后添加空格,如:
[TextView1 TextView2 TextView3 (free space) TextView4]
如果第二个TextView很长,那么它最后会用...进行椭圆化:
[TextView1 VeryLooooooongTexVi... TextView3 TextView4]
如何在xml中编写此布局?我必须使用LinearLayout或TableLayout更好吗?你能举一个例子吗?
答案 0 :(得分:1)
您可以使用 RelativeLayout ,使用属性layout_ alignParentLeft ,layout_ alignParentRight 和layout_ 以您希望的方式对齐文本视图toRightOf 即可。 可以使用TextView的 maxWidth,ellipsize,singleLine 属性以所需方式设计第二个 TextView 。 布局有点像这样:
<RelativeLayout android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView android:id="@+id/firstTextView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:text="first"/>
<TextView android:id="@+id/secondTextView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_toRightOf="@id/firstTextView"
android:layout_marginLeft="10dp"
android:singleLine="true"
android:maxWidth="100dp"
android:ellipsize="end"
android:text="secondtextviewlonnnnnnnnnnnnnnnnng"/>
<TextView android:id="@+id/thirdTextView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_toRightOf="@id/secondTextView"
android:layout_marginLeft="10dp"
android:text="third"/>
<TextView android:id="@+id/fourthTextView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dp"
android:text="fourth"/>
</RelativeLayout>
此外,您还可以找到不同布局here
的示例项目答案 1 :(得分:0)
<?xml version="1.0" encoding="utf-8"?>
<TextView
android:layout_width="0"
android:layout_height="fill_parent"
android:layout_weight="1" />
<TextView
android:layout_width="0"
android:layout_height="fill_parent"
android:layout_weight="1" />
<TextView
android:layout_width="0"
android:layout_height="fill_parent"
android:layout_weight="1" />
<View
android:layout_width="0"
android:layout_height="fill_parent"
android:layout_weight="1" />
<TextView
android:layout_width="0"
android:layout_height="fill_parent"
android:layout_weight="1" />