美文网首页Android
2019-04-25 textview 超出显示省略号

2019-04-25 textview 超出显示省略号

作者: 菜神一把梭 | 来源:发表于2019-04-25 15:20 被阅读0次

    1超出固定宽度,ellipsize ; layoutwidth="60dp"

    2超出单位宽度 , maxems; maxEms单行会自带省略号,maxEms 只有控件wrap_content才有效;并且得加上android:ellipsize="end"android:maxEms="12"android:maxLines="1"

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

    2016年10月19日 18:15:57 彼岸花you 阅读数:10859

    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和省略号无关; 

    解决方案:

    maxEms单行会自带省略号,maxEms 只有控件wrap_content才有效;

    直接设置控件宽度 ,当文本超过这个长度的时候,会自动添加省略号(多行的时候,不会自动添加省略号,和maxEms一致);

    3、多行省略号

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

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

    需求:TextView只能显示8个字符,有多余字符的时候显示省略号 

    思考: 

    通过maxEms 并不能指定字符个数。 

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

    相关文章

      网友评论

        本文标题:2019-04-25 textview 超出显示省略号

        本文链接:https://www.haomeiwen.com/subject/perzgqtx.html