Android中使用maxWidth属性时如何消除TextView右端多余空白
问题原因
你遇到的右端空白是Android TextView默认的整词换行规则导致:当某行剩余空间不足以放下当前完整单词时,系统会将整个单词移动到下一行展示,上一行就会留下大量空白。
解决方案
- 方案1:修改原生换行策略(支持Android 8.0/API 26及以上版本)
给你的rightTextTextView添加以下两个属性即可:
android:breakStrategy="simple" android:hyphenationFrequency="normal"
breakStrategy="simple"会优先填满行宽,不会为了排版美观预留空白hyphenationFrequency="normal"会开启单词连字符拆分,长单词会优先占用当前行剩余空间,剩余部分加连字符放到下一行,进一步减少空白
如果不需要展示连字符,将hyphenationFrequency改为none即可。
- 方案2:兼容低版本系统
如果你的应用需要兼容API 26以下的设备,可以自定义TextView,重写onMeasure方法,测量时动态计算每行文本的实际占宽,调整控件宽度匹配内容;也可以直接使用开源的紧凑换行TextView组件实现效果。
内容的提问来源于stack exchange,提问作者Souvik Sinha
相关产品推荐
相关产品推荐

