问题描述
我的Flutter Text小部件中有时需要一个不间断的空格,例如“显示更多”链接或单位为“ 50 km / h”的数字。
以下代码可以正常工作,但看起来过于复杂:
const int $nbsp = 0x00A0; // from https://pub.dev/packages/charcode
print('Hello${String.fromCharCode($nbsp)}World'); // --> prints "Hello World",does not break
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ :/
我很好奇在插值字符串中是否可以使用更短的方法来使用charcode package中的整数常量?
解决方法
我想出的最佳解决方案是创建一个字符串扩展方法。
// string_extension.dart
const int $nbsp = 0x00A0;
extension StringExtension on String {
String get nonBreaking => replaceAll(' ',String.fromCharCode($nbsp));
}
用法示例:
// import 'string_extension.dart';
Text('Hello World'.nonBreaking)
,
最简单的方法是使用转义组合 [\u{00A0}]:
Text('Hello\u{00A0}world');