Android中TextView如何实现文本两端对齐 调整字间距消除行尾空白
Android TextView实现文本两端对齐解决方案
方案1:原生API实现(适配Android 8.0/API 26及以上版本)
Android从API 26开始原生提供了文本两端对齐的支持,只需要在你的TextView控件中添加android:justificationMode属性即可,修改后的代码如下:
<TextView android:id="@+id/description" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/dp24" android:fontFamily="sans-serif-thin" android:text="@string/sample_description" android:textColor="@color/black" android:lineSpacingExtra="@dimen/dp4" android:justificationMode="inter_word" />
该属性会自动调整单词间距,消除行尾空白,仅保持最后一行左对齐,完全匹配你需要的参考效果。
方案2:低版本兼容方案
如果你的应用需要兼容API 26以下的系统,可以选择以下两种实现方式:
- 自定义TextView:继承AppCompatTextView重写onDraw方法,自行测量每行文本的宽度,将行尾剩余的空白宽度平均分配到该行的单词/字符间隔中,逐行绘制文本即可实现两端对齐效果。你也可以直接使用业内成熟的开源两端对齐TextView组件,不需要自行实现底层逻辑。
- WebView替代:如果对性能要求不高,且文本内容格式简单,可以将段落内容包裹在添加了
text-align: justify样式的HTML<p>标签中,使用WebView加载显示即可实现两端对齐。
注意:以上所有方案默认都不会对段落的最后一行做两端对齐处理,符合全球通用的段落排版规范,不需要额外调整。
内容的提问来源于stack exchange,提问作者Shivam Jamaiwar
相关产品推荐
相关产品推荐

