Java 如何在ListView行中显示长文本视图高度?

Java 如何在ListView行中显示长文本视图高度?,java,android,listview,textview,android-linearlayout,Java,Android,Listview,Textview,Android Linearlayout,我有一个列表视图,如下所示: 注意文本视图是如何被省略号截断的。如何确保整个TextView在ListView中可见 这是我的行XML(文本视图称为bodyTextView): 设置ellipsize=“无”。另外,请确保指定足够大的maxLines。实际上,ellipsize=“none”不会影响元素的宽度 要使元素在线性布局中显示其全部内容,需要将其布局宽度或布局高度(以适用的为准)设置为“包裹内容”,然后确保线性布局中的其他元素不会首先占用空间。当然,即使使用此选项,单线文本视图在填充

我有一个列表视图,如下所示:

注意文本视图是如何被省略号截断的。如何确保整个TextView在ListView中可见

这是我的行XML(文本视图称为
bodyTextView
):


设置ellipsize=“无”。另外,请确保指定足够大的maxLines。

实际上,ellipsize=“none”不会影响元素的宽度

要使元素在线性布局中显示其全部内容,需要将其布局宽度或布局高度(以适用的为准)设置为“包裹内容”,然后确保线性布局中的其他元素不会首先占用空间。当然,即使使用此选项,单线文本视图在填充周围布局的宽度后仍将省略

你如何确保其他元素发挥良好?确保它们未设置为“填充”选项或“包裹”内容。显示多个文本视图的一种简单方法是:将主文本视图设置为布局宽度为“wrap\u content”,布局权重为“0”(这是默认权重,无需设置),然后将其他文本视图设置为布局宽度为“0dip”,布局权重为“1”。这将使布局的主文本视图具有与内容匹配的设置宽度,而其他文本视图的有效宽度为零。布局将看到布局权重,并调整其他文本视图的大小以占用剩余空间

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:orientation="horizontal"
      android:padding="4px">
      <ImageView android:id="@+id/avatarImageView"
          android:layout_width="48px"
          android:layout_height="48px"/>
      <LinearLayout
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:orientation="vertical"
          android:paddingLeft="4px">
          <LinearLayout
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:orientation="vertical"
              android:layout_weight="1"
             android:gravity="center_vertical">
              <TextView android:id="@+id/usernameTextView"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_weight="1"
                  android:gravity="left"
                 android:textStyle="bold"
                  android:singleLine="true"
                  android:ellipsize="end"
                  android:textColor="#444444"
                  android:padding="0px"/>

              <TextView android:id="@+id/bodyTextView"
                 android:orientation="vertical"
                 android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:singleLine="false"
                  android:textColor="#666666"
                  android:maxLines="5"
                  android:ellipsize="end"/>
          <TextView android:id="@+id/dateTextView"
                 android:orientation="vertical"
                 android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:singleLine="true"/>
          </LinearLayout>
      </LinearLayout>
  </LinearLayout>