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,这个被遗弃的方法,要用什么代替?

 

 

你可能感兴趣的:(TextView显示微信名称蜜汁换行BUG修复)