如何使用包装的文本视图获取并排文本视图

时间:2010-12-27 17:41:10

标签: android textview textwrapping

我有一个带有自定义适配器的listview,其中我有3个textview,两个相邻,一个低于其他。我遇到的问题是,当第一个textview扩展时,它会将另一个textview推离屏幕。

我无法成功地将其发挥作用,这是一个正在发生的事情的例子:

alt text

正如您所看到的,当第一个textview变得太长时,它会将其他文本推离屏幕。我希望如此包装但日期textview也显示出来。它也应该在水平视图中起作用。

这是listview适配器代码:

<RelativeLayout android:id="@+id/vw1" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:orientation="horizontal"
android:descendantFocusability="blocksDescendants" xmlns:android="http://schemas.android.com/apk/res/android">


<TextView android:id="@+id/liName" android:textSize="17sp"
    android:textColor="#333" android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:gravity="left"
    android:layout_gravity="left" />
<TextView android:id="@+id/liDate" android:textSize="12sp"
    android:textColor="#666" android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:gravity="right"
    android:layout_gravity="right" android:width="60sp" android:layout_toRightOf="@+id/liName" />

<TextView android:id="@+id/liNum" android:textSize="12sp"
    android:textColor="#666" android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:layout_below="@+id/liName" />


</RelativeLayout>

2 个答案:

答案 0 :(得分:4)

我假设正在推送的文本视图是liDate。 您需要将这个放在布局中的liName之前,并将宽度设置为“wrap_content”并将其对齐。然后用“fill_parent”宽度将liName绑定到它的左边 所以它看起来像这样:

<RelativeLayout android:id="@+id/vw1" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:orientation="horizontal"
android:descendantFocusability="blocksDescendants" xmlns:android="http://schemas.android.com/apk/res/android">


<TextView android:id="@+id/liDate" android:textSize="12sp"
    android:textColor="#666" android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:width="60sp" 
    android:layout_alignParentRight="true" />
<TextView android:id="@+id/liName" android:textSize="17sp"
    android:textColor="#333" android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@id/liDate" />

<TextView android:id="@+id/liNum" android:textSize="12sp"
    android:textColor="#666" android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:layout_below="@+id/liName" />

希望这就是你的意思

答案 1 :(得分:0)

关键是使用“@ + id /”作为第一个textview而不是“@ id /” 这对我有用:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >
    <TextView
        android:id="@+id/listEventTypeText"
        android:layout_toLeftOf="@+id/listEventDateText"
        android:layout_alignParentLeft="true"
        />
    <TextView
        android:id="@+id/listEventDateText"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignBaseline="@id/listEventTypeText"
        />
    </RelativeLayout>