Flutter字符串插值中的不间断空格

问题描述

我的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');