2012-05-01 102 views
2

我使用ViewPagerIndicator http://viewpagerindicator.com/ViewPagerIndicator標籤 - 控制文本樣式

的主題指定的風格,這是正在使用(我可以更改樣式的文本顏色,看它會影響標籤文本)

<style name="TabText" parent="Widget.TabPageIndicator.Text"> 
    <item name="android:textColor">@color/white</item> 
    <item name="android:textSize">14sp</item> 
    <item name="android:ellipsize">end</item> 
</style> 

我想控制如何處理選項卡名稱的長度。我想使用wrap_content進行試驗(即選項卡調整大小以包裝文本寬度),並且我還想在長文本上使用橢圓化試驗(即選項卡的寬度相同,但標題太長,則爲橢圓化)。

enter image description here

的ellipsizing在較舊的設備(例如Nexus One的)

enter image description here

但在ICS的ellipsizing不工作,而標題就是截斷

怎麼辦我控制寬度&橢圓化VPI中的標籤文本?

(在相關說明中,我發現默認情況下長文本包裝在VPI中,因此我使用非分隔空格搜索替換空格來阻止該樣式,因爲樣式中的singleLine = true會導致VPI拋出轉換異常)

+0

「as singleLine =樣式中的true導致VPI拋出一個轉換異常」 - 「TextView」是一個「TextView」,無論它是否爲單行。什麼'ClassCastException'被拋出? – CommonsWare

+0

我無法重現它,但它是從VPI內拋出的ClassCastException –

回答

8

該解決方案似乎很簡單,將singleLine=true"添加到樣式中。看起來截斷不是截斷,而是實際上封裝。

添加此屬性不會再在我的項目中導致VPI中出現轉換異常,所以我只能假設其他因素參與了以前看到的轉換異常。