使用EditText 代替textview实现末尾省略号

textview 末尾省略号:

android:ellipsize = "end"    省略号在结尾
android:ellipsize = "start"   省略号在开头
android:ellipsize = "middle"     省略号在中间
android:ellipsize = "marquee"  跑马灯
最好加一个约束android:singleline = "true"

也可以用代码语句

tv.setEllipsize(TextUtils.TruncateAt.valueOf("END"));
tv.setEllipsize(TextUtils.TruncateAt.valueOf("START"));
tv.setEllipsize(TextUtils.TruncateAt.valueOf("MIDDLE"));
tv.setEllipsize(TextUtils.TruncateAt.valueOf("MARQUEE"));
最好再加一个约束tv.setSingleLine(true);

不仅对于textview有此属性,对于editext也有,不过它不支持marquee      以上内容转载--> http://www.android-study.com/jichuzhishi/225.html        

android:singleline 已经是不支持使用了的,可以 maxLines 来进行约束一下, 再加上android:ellipsize  是可以实现我们的省略号的。但是有一个地方比较坑的是,如果我们显示的内容在超过两行的时候,会出现第一行没有显示完全就开始显示到第二行的情况,这样的话就很不美观,查过一些资料,大多是说重写texiview  ,重新计算间隔这些说法。我只能说这样的方式很复杂,相当的复杂。我是使用了EditText代替textview , 设置了ellipsize="end",maxlines="2",然后把值赋给edittext 的hint  ,edittext在设置

textView.setFocusable(false);
就完美解决了的,因为赋给text 的话,省略号的设置是无用的。
 
 
 
 

猜你喜欢

转载自blog.csdn.net/a260724032/article/details/54847394