我想将API中的使用字符串设置为Fontawesome图标。我添加了font_awesome_flutter plugin
。
我需要将图标名称存储在变量中,然后从中创建一个对象。我想像这样:
String iconfromApi = 'suitcase';
Icon(FontAwesomeIcons.iconfromApi);
答案 0 :(得分:0)
与described here一样,您需要访问dart:mirrors
消息,这在Flutter中不可用。
在Flutter中可以使用的解决方案是创建一个辅助方法。这意味着您必须为所有要使用的图标名称编写代码。如果您不想手工编写所有内容,可以看看reflectable
中提到的GitHub comment之类的软件包,或者可能是source_gen
或build_runner
中的软件包,但是,我不确定后两者是否合适。
无论如何,您还可以手动编写一个帮助函数,如下所示:
IconData fontAwesomeIconFromString(String name) {
switch (name) {
case 'suitecase':
return FontAwesomeIcons.suitecase;
case 'gamepad':
return FontAwesomeIcons.gamepad;
// ...
}
}
在您的代码中,您现在可以像这样使用它:
String iconfromApi = 'suitcase';
Icon(fontAwesomeIconFromString(iconFromApi));