21

我希望有一個單一的內襯TextView露面在最後3個點時,文本比TextView更長。我不知道爲什麼 - 但我不明白。的TextView Ellipsize(...)不工作

我已經做完我的周圍類似的StackOverflow問題的頭,但我結束了無解。也許有人有一些有用的提示。

<LinearLayout 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:orientation="vertical"> 

    <TextView 
     android:textStyle="bold" 
     android:text="Full Name" 
     android:layout_height="wrap_content" 
     android:textSize="16sp" 
     android:layout_width="wrap_content" 
     android:id="@+id/lName" 
     android:layout_gravity="center_vertical" 
     android:maxLines="1" 
     android:ellipsize="end"/> 
</LinearLayout> 

LinearLayout上述嵌套到其他2 LinearLayouts。也許這很重要。我已經嘗試過屬性「singleLine」,但有人說這已被棄用,反正也無濟於事。

回答

38

添加下面的樣式您的樣式文件(通常styles.xml):

<style name="autoscroll"> 
    <item name="android:singleLine">true</item> 
    <item name="android:ellipsize">marquee</item> 
    <item name="android:marqueeRepeatLimit">marquee_forever</item> 
    <item name="android:focusable">true</item> 
    <item name="android:focusableInTouchMode">true</item> 
    <item name="android:scrollHorizontally">true</item> 
</style> 

然後風格@style/autoscroll添加到您的TextView

<TextView android:id="@+id/lName" 
     style="@style/autoscroll" /> 

您可以輕鬆地重用你的自動滾屏功能,當你想這條路。

+2

但TextViews沒有Style值! –

+2

使用風格=「@風格/自動滾屏」,而不是機器人:風格=「@風格/自動滾屏」 – Deshan

+0

如何我可以用作爲programically – Riskhan

15

在XML中添加這爲TextView的:

 android:maxWidth="200dp" 
     android:maxLines="1" 

由於

 android:singleLine="true" 

已被棄用。

+0

使用** maxWidth **不是*可擴展*解決方案,現在不推薦使用** singleLine **。改爲使用** ellipsize **和** scrollHorizo​​ntally **。 – Flawyte

+12

我認爲存在誤解。我剛剛在Android開發中檢查了'TextView','singleLine'沒有被棄用。 – Sufian

7
android:id="@+id/lName" android:layout_width="150dp" 
    android:layout_height="wrap_content" 
    android:ellipsize="end" 
    android:singleLine="true" 
    android:text="Avinljhakjhsajkhakjshda" 
    android:textSize="16sp" 
+0

此已經工作了的TextView屬性 一切順利:) – LuminiousAndroid

+7

'ellipsize'不會被棄用。你使用哪個網站作爲參考,我只是檢查了Android開發。 – Sufian

+0

這是一個錯誤,我正在談論** singleLine **而不是** ellipsize **。感謝您糾正它。 – Flawyte

0

它與singleLine="true"但此屬性現在已經過時,用ellipsizescrollHorizontally="true"代替。

+2

您已經發布了幾次,不推薦使用'ellipsize'和/或'singleLine'。請在分享文件的地方說明。正如我之前所說,我檢查了Android開發。 – Sufian

+0

正如我所說的在我的崗位** ** SINGLELINE被廢棄了,因爲有一段時間了,只是用** ** ellipsize結合'scrollHorizo​​ntally =真',因爲這些都不2都過時了,它應該工作。 – Flawyte

+0

那麼,這裏[它不是棄用](http:// developer。android.com/reference/android/widget/TextView.html#setSingleLine(boolean))。 – Sufian