【发布时间】: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