如何允许用户为其添加的内容选择图标?

时间:2019-04-14 09:12:25

标签: flutter

是否可以从Icon类中加载所有图标,并允许用户选择其中一个要使用的图标?例如,我希望用户在文本字段中输入文本,然后选择一个图标,然后将该文本和图标添加到某种列表中。我已经知道了文本部分,但是我不知道如何加载所有图标并让用户选择一个。

1 个答案:

答案 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()),
        ),
    );
}

请记住,上述包装可能会过时或停产。因此上述解决方案似乎不太适合一般使用。