TextView显示微信名称蜜汁换行BUG修复

最近研究了两天这个BUG,之前毫无进展,然后机缘巧合之下解决了这个问题.

我的需求是微信登录,然后获取到微信名称,显示在TextView上,众所周知,微信中经常带有许多emoji表情。

显示的文本是

“我的\uD83C\uDF32\uD83D\uDE4C\uD83D\uDC4Ftest3516\uD83D\uDE18”     

不止为何显示出来长这样  

我这边需求是TextView设置maxLine=1和ellipsize="end",

然后显示就是

问题就是这个蜜汁换行。

解决方法呢,就是把maxline=1改成singleline=true。

现在我们来看下maxline=1和singleline=true的区别,出去跑马灯那块的焦点不讲。

maxline是在限制高度,而single则是强行不换行。从换行的位置来讲,maxLines并不会改变其换行的位置,而singleLine则会。

singleLine的显示会好一些,因为如果超过一行singleLine会在一行内显示,后面加上"...",而maxlines="1" 则不会,它依然会在原来换行的位置换行,所以有时候一行不满,但是却不显示剩下的部分。

------------------------------------------------------------------------------------------------------------------------------------------------------

以上算是把需求解决了,但是遗留的两个问题。

1,为什么这个文本显示在TextView上时会将下面的视为一个整体,从而换行?

2,singleline=true,这个被遗弃的方法,要用什么代替?

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值