复杂的android布局

时间:2013-01-10 14:08:40

标签: android layout android-linearlayout android-tablelayout

我需要使用4 TextView进行布局。

第一个TextView位于屏幕的左边界,第二个TextView可能有不同的大小,第二个TextView位于第二个textView之后,第四个TextView位于屏幕的右边界。

如果第二个TextView很短,则在第三个TextView之后添加空格,如:

[TextView1 TextView2 TextView3 (free space) TextView4]

如果第二个TextView很长,那么它最后会用...进行椭圆化:

[TextView1 VeryLooooooongTexVi... TextView3 TextView4]

如何在xml中编写此布局?我必须使用LinearLayout或TableLayout更好吗?你能举一个例子吗?

2 个答案:

答案 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" />