是否可以从Icon类加载所有图标并允许用户选择其中一个使用?例如,我希望用户在文本字段中输入文本,然后选择一个图标,然后将该文本和图标添加到某种列表中。我已经知道了文本部分,但我无法弄清楚如何加载所有图标并让用户选择一个。
颤动图标存储为静态类成员,reflect function需要get a list of members of a class。需要使用飞镖镜来反射功能和flutter doesn't allow using dart mirrors。因此,似乎不可能(或至少很容易)获得这些成员的列表。
见here。
我建议使用material_design_icons_flutter包和下面的代码。
@override
Widget build(BuildContext context) {
List<String> iconListKeys = iconMap.iconMap.keys.toList();
MdiIcons iconLib = new MdiIcons();
List<IconData> iconList = iconListKeys
.map<IconData>((String iconName) => iconLib[iconName])
.toList();
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: ListView(
children: iconList.map<Widget>((icon) => Icon(icon)).toList()),
),
);
}
请记住,提到的包装可能会过时或停产。因此,上述解决方案似乎不适合一般用途。