在 flutter 中使用 Text 组件显示中英文文本会出现提前换行的问题。例如
Text("订单编号:200202188HHTVd1931789HHDD11318DBBBX10000");
类似这种中英文组合时后就会出现提前换行的问题,但是我翻阅文档中并没有类似 css 中word-break
属性。只有一个SoftWrap
的属性,默认值为true
。当设置为false
的时候,就不会出现提前换行的情况。但是超出边界会直接隐藏剩余的部分。
解决方法
我们可以在字符串中插入一个不可见字符串,来实现类似word-break
的效果。
extension StringExtension on String {
String get wordBreak {
return Characters(this).join("\u{200B}");
}
}
然后使用
Text("订单编号:200202188HHTVd1931789HHDD11318DBBBX10000".wordBreak);