多字文本android:ellipsize属性不正常工作的解决办法

当TextView中的文本内容长度超过了TextView的宽度,如果是单行,超出部分将被截断,此时我们都会使用android:ellipsize,该属性可以用了来省略显示文本,但很可能不像我们原以为的那样工作。

比如,我们配置了这样一个标准的TextView

  1. <TextView   
  2.        android:text="如果是一段很长的文本,内容长度超出了这个View的宽度,我们想要一行显示,且超出部分在末端以省略号'……'表示,但实际上没有这样工作,而是文本超出的多余的部分被截断了。如:文本内容为'My name is Eric, i am a good boy.'被截断成了'My name is Eric'而不是'My name is Eric.....' "   
  3.        android:layout_width="fill_parent"   
  4.        android:layout_height="wrap_content"  
  5.        android:maxLines="1"  
  6.        android:ellipsize="end" />  

可以设置singleLine="true"解决问题,然而这个方法已经被废弃了不推荐使用,我们可以简单实现和singleLine相同的效果(红字部分)。正常工作的解决办法如下:

  android:ellipsize="end" 

 android:lines="1" android:scrollHorizontally="true"

你可能感兴趣的:(多字文本android:ellipsize属性不正常工作的解决办法)