时间:2021-05-21
使用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。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文介绍了AndroidTextView属性ellipsize多行失效的解决思路,分享给大家,具体如下:多余文字显示省略号的常规做法android:ellips
条件:1、android:ellipsize=”marquee”2、TextView必须单行显示,即内容必须超出TextView大小3、TextView要获得焦
android开发过程中,经常遇到Textview展示不完全的情况。遇到此情况,通常的处理是:方案一、Textview添加android:ellipsize属性
android自带的TextView可以实现跑马灯效果,但是有很多的局限性;比如需要设置ellipsize=”marquee”,获取focusable=”tru
本文实例讲述了Android实现在TextView文字过长时省略部分或滚动显示的方法。分享给大家供大家参考,具体如下:TextView中有个ellipsize属