我有一个如下所示的ListView:
注意TextView是如何被elipses切断的。如何确保整个TextView在ListView内部可见?
这是我的行的XML(textview称为bodyTextView
):
<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>
答案 0 :(得分:1)
设置ellipsize =“none”。另外,请务必指定maxLines足够大。
答案 1 :(得分:0)
实际上,ellipsize =“none”不会影响元素的宽度。
要使元素在LinearLayout中显示其全部内容,您需要将其layout_width或layout_height(以适用者为准)设置为“wrap_content”,然后确保LinearLayout中的其他元素不会占用空间。即使使用此选项,当一行填充周围布局的宽度时,单行文本仍然会进行椭圆化。
你如何确保其他元素玩得很好?确保它们不是也设置为fill_ *选项或wrap_content。一个简单的方法来显示几个TextViews,其中一个占用了它所需的所有空间而其他人玩得很好就是:将主要的一个设置为layout_width为“wrap_content”,layout_weight为“0”(这是默认权重,你不需要设置它,然后将其他设置为layout_width为“0dip”,layout_weight为“1”。这将为主布局提供与内容匹配的设置宽度的布局,以及有效宽度为零的其他TextView。然后布局将看到layout_weights并调整其他TextView的大小以占用剩余空间。