国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android ellipsize的小問題介紹

2020-04-11 12:42:18
字體:
來源:轉載
供稿:網友
使用TextView的時候,需要長度過長自動顯示省略號,android里有原生的支持,定義如下:
復制代碼 代碼如下:

<TextView ...
android:ellipsize="end"
android:singleLine="true"/>

一看確實可以使用,但仔細觀察,發現在省略號…的后面有一個方框,類似于出現亂碼那種字符,這是為什么呢?

原來android里的ellipsize在處理字符串的時候,如果發現字符串超長,便會把最后一個字符替換為…,不是三個點,而是字體內置的省略號。不管用什么字體,都需要支持這個省略號才能正確顯示。APP使用的字體是Mercedes,它支持省略號顯示,這里沒有問題。問題在于android在處理ellipsize的時候,把一個字符替換為…,把剩下截斷的其他字符替換為Unicode的字符“ZERO WIDTH NO-BREAK SPACE” (U+FEFF),這個字符在屏幕上并不會顯示出來,但它仍是字符串的一部分。

問題原來出在這里,使用的Mercedes字體不支持這個特殊字符U+FEFF的顯示,所以才會出現亂碼。解決的方法也很簡單,編輯字體文件,把U+FEFF這個字符的寬度設為0。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 淳化县| 开阳县| 济源市| 许昌县| 甘泉县| 武山县| 古交市| 五家渠市| 彭山县| 临江市| 烟台市| 开江县| 措勤县| 肃宁县| 从江县| 如东县| 孟连| 英吉沙县| 临清市| 磐石市| 普宁市| 瑞金市| 柞水县| 莆田市| 奉节县| 苗栗县| 绥化市| 乐昌市| 扎赉特旗| 保山市| 九龙城区| 获嘉县| 常德市| 灌阳县| 贵州省| 宽甸| 临清市| 新蔡县| 且末县| 深州市| 仙游县|