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属性好了。

 评论