2011-05-24 29 views
0

我有一个ListView,看起来像这样: enter image description here如何在ListView行中显示长TextView高度?

请注意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> 

回答

1

设置ellipsize = “无”。另外,一定要指定maxLines足够大。

0

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

要获取元素以在LinearLayout中显示其全部内容,您需要将其layout_width或layout_height(以适用者为准)设置为“wrap_content”,然后确保LinearLayout中的其他元素不占用空间第一。即使使用这个选项,当然,一行填充周围布局的宽度后,singleLine TextView仍然会进行椭圆化。

你如何确保其他元素发挥出色?确保它们不是设置为fill_ *选项或wrap_content。一个简单的方法来显示几个TextViews,占用所有需要的空间,其他人玩的很好,这是:将layout_width设置为layout_weight为“0”的layout_width(这是默认权重,您不需要设置它),然后将其他设置为layout_weight为“1”的layout_width为“0dip”。这会将主要TextView设置为具有与内容匹配的设置宽度的布局,以及有效宽度为零的其他TextView。然后布局将看到layout_weights并调整其他TextView的大小以占用剩余空间。