material_design_icons_flutter 7.0.7296版本部分图标无法渲染显示求助
解决material_design_icons_flutter 7.0.7296版本图标无法渲染的问题
问题原因
你使用的图标名称字符串与插件7.0.7296版本内部的图标命名规则不匹配,fromString()方法需要严格匹配官方图标名称,下划线格式的命名不符合该版本的要求;同时字符串调用无法在编译阶段检查错误,容易出现匹配失败导致图标不显示。
解决方案
方案1:直接使用MdiIcons类的静态成员(推荐)
放弃fromString()调用,改用编译时可校验的静态属性,彻底避免字符串匹配错误:
MenuItemButton( leadingIcon: Icon(MdiIcons.personAdd), // 替代person_add child: Text('Click Me'), );
对应图标替换关系:
person_add→MdiIcons.personAddlanguage→MdiIcons.languageschedule→MdiIcons.scheduledark_mode→MdiIcons.darkMode
方案2:修正fromString的图标名称格式
如果必须使用fromString(),需要将下划线替换为连字符(匹配该版本要求的官方图标命名格式):
MenuItemButton( leadingIcon: Icon(MdiIcons.fromString('person-add')), // 替换为连字符格式 child: Text('Click Me'), );
对应修正后的名称:
person_add→"person-add"dark_mode→"dark-mode"language和schedule名称格式正确,可直接使用MdiIcons.fromString('language')、MdiIcons.fromString('schedule')
额外提示
优先选择方案1,静态成员调用会在编译阶段就检测到错误(比如图标名称不存在),而fromString()只会在运行时静默失败,不利于调试排查问题。
内容的提问来源于stack exchange,提问作者eastwater
相关产品推荐
相关产品推荐

