【TextView】Android TextView显示省略号的问题(关于TextView maxLength 和maxEms的学习)

1、TextView的属性maxLength和maxEms

1). maxLength

  • 作用:设置TextView 文本显示的个数
  • 理解:把text的字符取出来,截取了指定个数个字符,然后将截取的字符放到控件中去。和省略号无关

2)、maxEms

  • 作用:设置TextView文本显示的长度(单位ems),设置match_parent和固定的dp值 之后,maxEms 无效。
  • 使用
    maxEms和字符的个数没有关系,这里说的ems更像是一种单位。
    当文本超过了指定的ems值得时候,有两种情况:
    1) 单行:maxEms的设置会主动显示省略号(不添加ellipsize也会有省略号,有中文省略号是三个点,其余的省略号就可能只有一个点)
    2) 多行:换行继续显示剩下的内容,如果这一行也到达了指定的位置,则继续换行显示。maxEms不会主动添加省略号。这个时候,如果想要添加省略号,就需要使用到ellipsize=”end”这个属性。
  • 理解:只有设置wrap_content时,maxEms才有效。ellipsize 比较像直接设置控件的宽,忽略其中小小的差别。

2、单行省略号

maxLength和省略号无关;
解决方案:

  1. maxEms单行会自带省略号,maxEms 只有控件wrap_content才有效;
  2. 直接设置控件宽度 ,当文本超过这个长度的时候,会自动添加省略号(多行的时候,不会自动添加省略号,和maxEms一致);

3、多行省略号

只能借助ellipsize属性,并且这里的实现效果也只是在达到整行的时候,如果还有数据需要显示,则显示省略号。

4、限定TextView显示字符的个数,多余的显示省略号

需求:TextView只能显示8个字符,有多余字符的时候显示省略号
思考
通过maxEms 并不能指定字符个数。
不知道要怎么做了,唯一想到的是在界面初始化的时候,获取到控件的字符,在代码中进行字符处理(保存原有数据,判断有多少个字符,多余字符显示省略号等),将处理后的数据显示到界面上。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值