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

参考:
1.Ellipsize not working for textView inside custom listView

2.Ellipsize functionality in TextView does not put ellipsis for single line multi-word text

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

 

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

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

 

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

 

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







 

你可能感兴趣的:(android)