android relativelayout两行,右边是列

时间:2014-12-15 03:18:17

标签: android relativelayout

我正在尝试在左侧实现两行,浮动(右)TextView将有一个数字。这是listview项目布局。

                               ____
___________________________   |    |
___________________________   |____|

所以内容就像是

LINE ONE CAN SOMETIMES BE LONG   £2000.00
line two

然而,£2000.00(更大的文字大小)要么与下面的代码示例重叠,要么使用android:layout_toRightOf="@+id/row1"它基本上位于row1旁边,如果row1很长,有时会进入下一行。它应该总是在一行。

有人可以帮忙吗?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="6dp" >

    <TextView
        android:id="@+id/row1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/rightcol"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:textColor="#cc0000"
        android:textSize="22dp" />

    <TextView
        android:id="@+id/row2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/row1" />

</RelativeLayout>

这样右列文本与row1重叠

感谢您查看

1 个答案:

答案 0 :(得分:4)

android:layout_weight对于实现所需的布局非常有用(请参阅this)。您可以使用android:layout_width="wrap_content"作为右侧文本视图,而不是50dp。其他TextView将调整以填充剩余空间。您可以使用android:singleLine="true"来限制TextView,以便它们不会换行。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="horizontal"
              android:layout_width="match_parent"
              android:layout_height="match_parent">

    <LinearLayout
        android:orientation="vertical"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content">

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>

    </LinearLayout>

    <TextView
        android:layout_width="50dp"
        android:layout_height="50dp"/>

</LinearLayout>

如果您使用RelativeLayout进行设置,则应该可以正常工作。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:padding="6dp" >

    <TextView
        android:id="@+id/row1"
        android:text="This text can be very, very long"
        android:singleLine="true"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/rightcol"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/rightcol"
        android:text="$2000000000000.00"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:textColor="#cc0000"
        android:textSize="22dp" />

    <TextView
        android:id="@+id/row2"
        android:text="Second line of text"
        android:singleLine="true"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/rightcol"
        android:layout_below="@+id/row1" />

</RelativeLayout>