2019-04-25 textview 超出顯示省略號

1超出固定寬度,ellipsize ; layoutwidth="60dp"

2超出單位寬度 , maxems;?maxEms單行會自帶省略號,maxEms 只有控件wrap_content才有效;并且得加上android:ellipsize="end"android:maxEms="12"android:maxLines="1"


【TextView】Android TextView顯示省略號的問題(關(guān)于TextView maxLength 和maxEms的學(xué)習(xí))

2016年10月19日 18:15:57?彼岸花you?閱讀數(shù):10859

1、TextView的屬性maxLength和maxEms

1). maxLength

作用:設(shè)置TextView 文本顯示的個數(shù)

理解:把text的字符取出來,截取了指定個數(shù)個字符,然后將截取的字符放到控件中去。和省略號無關(guān)

2)、maxEms

作用:設(shè)置TextView文本顯示的長度(單位ems),設(shè)置match_parent和固定的dp值 之后,maxEms 無效。

使用:?

maxEms和字符的個數(shù)沒有關(guān)系,這里說的ems更像是一種單位。?

當(dāng)文本超過了指定的ems值得時候,有兩種情況:?

1) 單行:maxEms的設(shè)置會主動顯示省略號(不添加ellipsize也會有省略號,有中文省略號是三個點(diǎn),其余的省略號就可能只有一個點(diǎn))?

2) 多行:換行繼續(xù)顯示剩下的內(nèi)容,如果這一行也到達(dá)了指定的位置,則繼續(xù)換行顯示。maxEms不會主動添加省略號。這個時候,如果想要添加省略號,就需要使用到ellipsize=”end”這個屬性。

理解:只有設(shè)置wrap_content時,maxEms才有效。ellipsize 比較像直接設(shè)置控件的寬,忽略其中小小的差別。

2、單行省略號

maxLength和省略號無關(guān);?

解決方案:

maxEms單行會自帶省略號,maxEms 只有控件wrap_content才有效;

直接設(shè)置控件寬度 ,當(dāng)文本超過這個長度的時候,會自動添加省略號(多行的時候,不會自動添加省略號,和maxEms一致);

3、多行省略號

只能借助ellipsize屬性,并且這里的實(shí)現(xiàn)效果也只是在達(dá)到整行的時候,如果還有數(shù)據(jù)需要顯示,則顯示省略號。

4、限定TextView顯示字符的個數(shù),多余的顯示省略號

需求:TextView只能顯示8個字符,有多余字符的時候顯示省略號?

思考:?

通過maxEms 并不能指定字符個數(shù)。?

不知道要怎么做了,唯一想到的是在界面初始化的時候,獲取到控件的字符,在代碼中進(jìn)行字符處理(保存原有數(shù)據(jù),判斷有多少個字符,多余字符顯示省略號等),將處理后的數(shù)據(jù)顯示到界面上。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容