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