在Flutter中,我从json中获取Icon值作为字符串。
我得到了以下错误,当我试图使用该值
error: The argument type 'String' can't be assigned to the parameter type 'IconData'. (argument_type_not_assignable at [hippo] lib\screens\dynamic_list.dart:71)
{
"page": 1,
"MenuItems": [
{
"id": 419701,
"icon": "MdiIcons.account",
"name": "account"
},
{
"id": 419702,
"icon": "MdiIcons.currencyUsd",
"name": "Funds"
},
{
"id": 419703,
"icon": "MdiIcons.home",
"name": "home"
}
]
}
8条答案
按热度按时间xuo3flqw1#
我用材质图标解决了这个问题
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
pgvzfuti2#
您可以根据官方Flutter文档使用Icon类常量来实现这一点。
查看更多Icon类常量:https://api.flutter.dev/flutter/material/Icons-class.html#constants
n7taea2i3#
你可以根据官方Flutter文档使用Icon类常量。(https://api.flutter.dev/flutter/material/Icons-class.html#constants)
示例:
IconData(0xf518, fontFamily: 'MaterialIcons')
您还可以生成自定义图像的字体图标(生成字体)。保存ttf文件在资产.传递unicode数据(如“e90 a”)。
示例:
0qx6xfy64#
正如@user3705905所指出的,以及https://github.com/flutter/flutter/issues/75633中提到的,使用十六进制值或
IconData.codePoint
值将不再工作。为了克服这个问题,并存储图标的IconData
的引用,您可以使用下面的解决方案使用Map(例如):稍后您可以简单地使用map键,稍后获得图标数据。
jyztefdp5#
使用flutter_remote_icon
https://github.com/softmarshmallow/remote-ui/tree/master/flutter/packages/flutter_remote_icon
https://pub.dev/packages/flutter_remote_icon
ltskdhd16#
我为此创建了一个简单的类。
用途:
我不能把所有的类代码都放在这里。因为这篇文章限制在30k字符。
fruv7luv7#
ttvkxqim8#
尝试删除此''撇号,因为图标数据不应是字符串