我想使用资产中的图像作为图标,然后建立列表,但是尝试将Image.asset作为类添加到具有IconData作为数据类型的变量作为图标时,发生了一些错误,而不是使用Icons作为课。
有解决此问题的主意吗?
谢谢。
class Menu {
const Menu({this.icon, this.title});
final IconData icon;
final String title;
}
const List<Menu> menus = const <Menu>[
const Menu(title: 'menu_icon_1', icon: Image.asset('assets/menu/1-1.png')),
],
错误:无法将参数类型“图像”分配给参数类型“ IconData”。 (在[sinergi] lib \ home.dart:12处为argument_type_not_assignable)
答案 0 :(得分:1)
如果要使用默认图标
class Menu {
const Menu({this.icon, this.title});
final IconData icon;
final String title;
}
const List<Menu> menus = const <Menu>[
const Menu(title: 'Trending', icon: Icons.trending_up),
const Menu(title: 'Favorite', icon: Icons.favorite),
const Menu(title: 'Search', icon: Icons.search),
const Menu(title: 'Category', icon: Icons.category),
const Menu(title: 'Settings', icon: Icons.settings),
];
答案 1 :(得分:1)
要将图片设置为显示为图标,您需要传递一个ImageProvider
实例。为此,您需要创建属于ImageProvider
后代的任何类的实例,例如AssetImage
,NetworkImage
,MemoryImage
和ResizeImage
。以下示例使用AssetImage
加载图像。
const List<Menu> menus = const <Menu>[
const Menu(title: 'menu_icon_1', icon: ImageIcon(AssetImage('assets/menu/1-1.png'))),
];
答案 2 :(得分:0)
请使用ImageIcon
class Menu {
const Menu({this.icon, this.title});
final ImageIcon icon;
final String title;
}
const List<Menu> menus = const <Menu>[
const Menu(title: 'menu_icon_1', icon: ImageIcon(AssetImage('assets/menu/1-1.png'))),
];