Flutter:基于字符串图标api绘制图标

问题描述 投票:0回答:1

我收到 JSON 格式的图标名称。图标名称与颤动图标名称兼容。例如,如果我收到:

{ "icon":"rotate_90_degrees_ccw"}

我应该在屏幕上绘制这个图标:https://api.flutter.dev/flutter/material/Icons/rotate_90_ Degrees_ccw-constant.html

我知道,我做了自己的地图,其中键是图标的字符串名称,值可以是图标,但我应该预测每种情况,但我期望集合中的几乎每个图标:https://api.flutter。 dev/flutter/material/Icons-class.html

那么...如何以最有效的方式做到这一点?如何将字符串转换为 flutter Icon?

flutter image widget icons
1个回答
0
投票

有很多答案建议将

String
转换为
Map<String,IconData>
.

我认为如果你的字符串图标数量有限,那就没问题,因为这种方式需要硬编码。

String rotationIcon = "rotate_90_degrees_ccw";

Map<String,IconData> icons = {rotationIcon: Icons.rotate_90_degrees_ccw}

Icon icon = Icon(icons[rotationIcon]);

如果您有 100 个可能由

API
返回的图标,您必须在该地图中对它们进行硬编码。

顺便说一句,有一些软件包可以直接将

strings
转换为
icons
,例如:string2icon

这些包主要是依赖于图标硬编码构建的。

第二选择

这是多么好的一种方式,如果你的

API
返回图标的代码而不是名称,它将变得简单直接。

IconData rotateIcon = IconData(0xe53e, fontFamily: 'MaterialIcons');

Icon(rotateIcon);

0xe53e
API
返回的图标代码。

最后,我希望所有的标题都对你开放。

希望对您有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.