Flutter:参数类型 'Image' 无法分配给参数类型 'IconData'
Flutter : The argument type 'Image' can't be assigned to the parameter type 'IconData'
我想使用资产中的图像作为图标,然后构建列表,但是在尝试将 Image.asset
作为 class 添加到图标时出现了一些错误作为数据类型为 IconData
的变量,而不是将图标用作 class.
有解决这个问题的办法吗?
谢谢。
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')),
],
error: The argument type 'Image' can't be assigned to the parameter type 'IconData'. (argument_type_not_assignable at [sinergi] lib\home.dart:12)
请使用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'))),
];
如果你想要默认图标
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),
];
要将图像设置为显示为 图标,您需要传递一个 ImageProvider
实例。为此,您需要创建任何 class 的实例,它是 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'))),
];
我想使用资产中的图像作为图标,然后构建列表,但是在尝试将 Image.asset
作为 class 添加到图标时出现了一些错误作为数据类型为 IconData
的变量,而不是将图标用作 class.
有解决这个问题的办法吗?
谢谢。
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')),
],
error: The argument type 'Image' can't be assigned to the parameter type 'IconData'. (argument_type_not_assignable at [sinergi] lib\home.dart:12)
请使用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'))),
];
如果你想要默认图标
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),
];
要将图像设置为显示为 图标,您需要传递一个 ImageProvider
实例。为此,您需要创建任何 class 的实例,它是 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'))),
];