Android maxEms与maxLength

2023-06-25  本文已影响0人  anliner

我真服了,好几年没用这两个属性,印象中maxEms比maxLength好用,印象中maxEms限制4,中文和英文都是4个,maxLength限制4,中文是2,英文是4,结果全是反的。。。。查了下有些博客也是说记反了,我都以为曼德拉效应了。

image.png

可以看到几个明显区别:
1、maxEms在宽度match_parent时无效,而非match_parent时,如果不是maxLines=1(singleLine),会自动换行,说白了只会限制单行字数。而maxLength无论宽度多少都是限制总字数,当然如果限制的文字总宽大于控件宽,也会换行,所以控件宽和单个文字宽度已知的情况,通过maxLength限制字数也能限制行数;
2、maxEms限制的是中文字数,对应英文字数是要乘以2的,例如maxEms=2,中文是两个字,英文是4个字;而maxLength限制的是字符数,maxLength=2,无论中文英文字数都是2;

上一篇下一篇

猜你喜欢

热点阅读