2013-05-04 74 views
4

我想要在具有多行文本的textview結束時得到一個橢圓。 「...」正在顯示,但在文本的最後一個空格處顯示,其他字符後面是其他字符。我如何確保「......」總是在最後。Android Textview橢圓大小與多行

見例如圖像enter image description here

的XML佈局文件是:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:tools="http://schemas.android.com/tools" 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:layout_marginRight="5dp" 
android:orientation="horizontal" > 

<TextView 
    android:id="@+id/nfDateMonth" 
    android:layout_width="64dp" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="10dp" 
    android:layout_marginRight="8dp" 
    android:layout_marginTop="2dp" 
    android:background="@drawable/topsegment" 
    android:gravity="center" 
    android:text="APR" 
    android:textAllCaps="true" 
    android:textColor="#f2e606" 
    android:textSize="22sp" 
    android:textStyle="bold" /> 

<TextView 
    android:id="@+id/nfDateDate" 
    android:layout_width="64dp" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/nfDateMonth" 
    android:layout_marginBottom="10dp" 
    android:layout_marginLeft="10dp" 
    android:layout_marginRight="8dp" 
    android:background="@drawable/bottomsegment" 
    android:gravity="center" 
    android:text="28" 
    android:textSize="22sp" /> 

<TextView 
    android:id="@+id/nfTitle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="2dp" 
    android:layout_marginTop="0dp" 
    android:layout_toRightOf="@+id/nfDateMonth" 
    android:text="Half Marathon" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:textSize="16sp" /> 

<TextView 
    android:id="@+id/nfContent" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/nfTitle" 
    android:layout_gravity="left" 
    android:layout_marginBottom="2dp" 
    android:layout_marginRight="16dp" 
    android:layout_marginTop="2dp" 
    android:layout_toRightOf="@+id/nfDateDate" 
    android:ellipsize="end" 
    android:maxLines="2" 
    android:text="Content\nline two line three sadsa dsd dsa dsd big big big sd sad sad sadsadsad asd sad as d asd as das das das das da sd asd asd one two three four five sixx seven" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:textSize="12sp" /> 

</RelativeLayout> 
+0

我跑了所有新生產線的代碼,但沒有找到你提到的問題。 – 2013-05-04 12:05:50

+0

也許它是一個設備的東西,因爲正如圖像顯示,我顯然確實得到了問題.. – 2013-05-07 01:59:21

回答

2

今天我同樣的問題。這可能是TextView或TextUtils(方法ellipsize)中的錯誤。 在我的情況下,它是由帶有新行的文本引起的。

解決辦法有兩個:

  1. 僅獲得第一行:
String longText = "..."; 
String body = new Scanner(longText).nextLine(); 
textView.setText(body); 

2.刪除文本

String longText = "..."; 
String body = longText.replace("\n", "").replace("\r", ""); 
textView.setText(body);