【问题标题】:Flutter/Dart programmatically unicode stringFlutter/Dart 以编程方式 unicode 字符串
【发布时间】:2020-08-18 23:55:26
【问题描述】:

我的应用有一个自定义图标列表,如下所示,设置为 IconData,注意 codePoint (0xe931)。

IconData angry_face = IconData(0xe931, fontFamily: _fontFamily);

这并没有错,但在某些情况下,我需要将此图标作为 Unicode 字符串用作文本。应该这样做:

// It works too
Text('\ue931', style: TextStyle(fontFamily: _fontFamily));

问题是:

我不想“手动”使用此代码,因为此图标由设计师团队不断更改,有时它更改代码会弄乱我的应用程序图标。我需要做的是获取图标对象并将其解析为 Unicode 字符串,这样我就可以将它与 Text 小部件一起使用。

我认为以编程方式获取该代码并直接使用它会起作用,但事实并非如此:

var iconcode = iconData.codePoint.toRadixString(16);

var result;

// Error: An escape sequence starting with '\u'
// must be followed by 4 hexadecimal digits or
// from 1 to 6 digits between '{' and '}'
result = '\u$iconcode';

// Just a simple string
result = '\\u$iconcode';

简而言之:如何以编程方式将 int codePoint 解析为有效的 Unicode 字符串?

【问题讨论】:

  • 试试:final result = String.fromCharCode(iconData.codePoint);
  • 原来如此,非常感谢!

标签: flutter dart unicode icons


【解决方案1】:

这是正确的答案。除了这个,我什么都试过了……谢谢@julemand101

final result = String.fromCharCode(iconData.codePoint);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-31
    • 2019-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-07
    相关资源
    最近更新 更多