Android 15 TextView 新API

背景

做过国际化APP都知道, 有些地区的个别语言文字会超出 TextView 的绘制范围, 导致文字被切断, 无法完整显示.

最近网上冲浪发现Android 15为 TextView 添加了新的API, 可以使文字完整的显示出来, 有效解决了TextView文本被切断的问题.

快来看看吧!

New API

setUseBoundsForWidth

此方法用于控制 TextView 是否使用其边界来计算宽度.

  • 当设置为 false 时(默认值), TextView 的宽度将根据 android:layout_width 属性和内容计算, 这与之前版本的 Android 行为一致.

  • 当设置为 true 时,TextView 的宽度将由其内容和边界确定, 即使宽度设置为自适应android:layout_width="wrap_content". 这可以防止 TextView 在包含复杂字符(例如表情符号)时变得过宽.

shiftDrawingOffsetForStartOverhang

此方法用于控制 TextView 是否在绘制开始时偏移以适应悬垂字符.

  • 当设置为 true 时,TextView 会在绘制开始时偏移,以确保悬垂字符(例如标点符号) 不会被裁剪。

  • 当设置为 false 时(默认值),TextView 不会偏移,这与之前版本的 Android 行为一致。

总结

  1. 想要实现文字不被切断, 两个属性都要设置为true.
  2. 单独设置setUseBoundsForWidth=true会扩大宽度, 但是没有减少TextView内部padding, 导致文字仍然显示不全.

关于这两个属性, 并没有太多要进行介绍的, 这里只是简单记录下知识点, 想要知道效果, 自己试一试吧~

作者

王文辉

发布于

2024-11-15

更新于

2024-11-18

许可协议