maxEms踩坑
使用
使用maxEms的方法其实也很简单,xml里直接使用:
android:maxEms="7"
效果:
- maxEms的作用其实简单说来就是为TextView限定宽度。
- 宽度限定的效果是:从上面代码为基准,则是将TextView长度限制为7个大写M字母的宽度。
坑
- 在Vivo手机上,如果你使用了下述方案,可能会存在问题;
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:lines="1"
android:maxEms="7"
android:textColor="#91919A"
android:textSize="10dp"/>
- 上述代码,在vivo手机上,如果出现连续的大写字母为开头的内容,如“UNDER ARMOUR旗舰店”一类的文案时,maxEms就会失效。
- “UNDER ARMOUR旗舰店”只能显示前面的“UNDER”5个字符。
- 这个问题可以通过下述方案解决:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="none"
android:maxEms="7"
android:singleLine="true"/>
- 具体原因还没有来得及去分析,目前这种使用lines的方案,出问题也仅在vivo手机上。建议大家就直接使用singleLine属性好了。