2013-10-25 51 views
3

我想限制我的TextView爲2行。這是我的佈局XML,有關TextView的是id /描述:文本:maxLines和文本:ellipsize工作不正常

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:padding="8dp" > 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="OBJEKTBESCHREIBUNG" 
    android:textAppearance="@style/LargeText" 
    android:textColor="@color/myorange" /> 

<View 
    android:layout_width="match_parent" 
    android:layout_height="1dp" 
    android:background="@color/myorange" /> 

<TextView 
    android:id="@+id/description" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="4dp" 
    android:maxLines="2" 
    android:ellipsize="end" 
    android:textAppearance="@style/StandardText" /> 

<Button 
    android:id="@+id/more" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Mehr ..." 
    android:textAppearance="@style/SmallText" /> 

</LinearLayout> 

的文本ellipsized它應該(見圖片),但下一個字IST仍清晰可見。

這是什麼造成的?

編輯:這是我設置爲TextView的文本樣式:

<style name="StandardText"> 
    <item name="android:fontFamily" tools:ignore="NewApi">sans-serif-light</item> 
    <item name="android:textSize">15sp</item> 
    <item name="android:textColor">#000000</item> 
</style> 

EDIT2:試圖消除textAppearance屬性,但它沒有任何效果(關於ellipsize「錯誤」)。

enter image description here

+0

你在你的代碼中設置任何字體的字體樣式? – Srinivasan

+0

如果文字很大,該怎麼辦? –

+0

@Sri是的,我會將風格添加到我的問題中。 – FWeigl

回答

3

當你輸入的文本包含一個換行符或其他一些「特殊」的角色恰好應ellipsized區域出現此問題。

嘗試使用:

text.replaceAll("(\\t|\\r?\\n)", " ") 

這可能會解決您的問題。

+0

我試過了,無濟於事。錯誤發生在各種不包含特殊字符的字符串中。 – FWeigl

+0

這對我來說解決了同樣的問題,你應該通過添加填充邊的方式。 – Raanan

+1

對不起,它工作,謝謝! – FWeigl

0
// try this 
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:padding="8dp" 
    android:orientation="vertical"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="OBJEKTBESCHREIBUNG"/> 

    <View 
     android:layout_width="match_parent" 
     android:background="@android:color/white" 
     android:layout_marginTop="4dp" 
     android:layout_height="1dp"/> 

    <TextView 
     android:id="@+id/description" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="4dp" 
     android:maxLines="2" 
     android:text="demotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotext" 
     android:ellipsize="end"/> 

    <Button 
     android:id="@+id/more" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="4dp" 
     android:text="Mehr ..."/> 

</LinearLayout> 

Screenshot

+0

這不是一個好例子:你應該在文本中添加一些空格(單詞)。 –

相關問題