【问题标题】:How to get Side by Side textviews with one that wraps如何获得带有包装的并排文本视图
【发布时间】:2010-12-27 17:41:10
【问题描述】:

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

我无法成功地让它工作,这是正在发生的事情的一个例子:

如您所见,当第一个 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>

【问题讨论】:

    标签: android textview word-wrap


    【解决方案1】:

    我假设被推送的文本视图是 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" />
    

    希望这就是你的意思

    【讨论】:

    • 如果您在 layout_toLeftOf 中使用“@+id”,则不需要重新排序代码。 :>
    • 你确定吗?我不认为可以在左侧创建 liName 视图或尚不存在的视图。我想我之前遇到过这个问题,这就是为什么我养成了按顺序定义它们的习惯。但我可能是错的
    【解决方案2】:

    关键是第一个文本视图使用“@+id/”而不是“@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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-13
      • 2016-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多