是否可以从Icon类中加载所有图标,并允许用户选择其中一个要使用的图标?例如,我希望用户在文本字段中输入文本,然后选择一个图标,然后将该文本和图标添加到某种列表中。我已经知道了文本部分,但是我不知道如何加载所有图标并让用户选择一个。
答案 0 :(得分:0)
Flutter图标存储为静态类成员,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()),
),
);
}
请记住,上述包装可能会过时或停产。因此上述解决方案似乎不太适合一般使用。