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

本文介绍了如何利用EditText替代TextView实现文字末尾省略号的效果。通过设置android:ellipsize和android:singleLine(或使用maxLines)属性,可以控制省略号的位置。同时注意android:singleLine已不推荐使用,建议使用maxLines来限制行数。当内容超过两行时,使用EditText作为hint可以避免第一行未完整显示的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 的话,省略号的设置是无用的。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值