如何在Flutter中组合Unicode字符?

3
1个回答

2

您可以通过在字母后面放置Unicode来进行组合:

最初的回答

String overlined = 'O\u{0305}V\u{0305}E\u{0305}R\u{0305}';

print(overlined);  // Output: O̅V̅E̅R̅ 

一个更动态的版本(逻辑简单)如下:
最初的回答:

一种更加动态的版本(逻辑较为简单)如下:

void main() {
  String overlined = overline('I AM AN OVERLINED TEXT');

  print(overlined);  // Output: I̅ A̅M̅ A̅N̅ O̅V̅E̅R̅L̅I̅N̅E̅D̅ T̅E̅X̅T̅
}

String overline(String text) {
  return text.split('').map((String char) {
    if (char.trim().isEmpty)
      return char;
    else
      return '$char\u{0305}';
  }).join();
}

然而,这样做的范围相当有限。更好的方法是使用 Flutter 的 Textstyle 属性来实现:
const Text(
  'OVER',
  style: TextStyle(decoration: TextDecoration.overline),
);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接