2011-05-24 64 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的大小以佔用剩餘空間。