Flutter: 参数类型 'Image' 无法分配给参数类型 'IconData'

7

我想使用assets中的图像作为图标,然后构建我的列表,但是当我尝试将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')),
],

error: The argument type 'Image' can't be assigned to the parameter type 'IconData'. (argument_type_not_assignable at [sinergi] lib\home.dart:12)
2个回答

9
请使用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'))),
];

参数类型 'ImageIcon' 无法赋值给参数类型 'Icon?'。 - Mahmoud Samy
SideMenuItem( priority: 0, title: '仪表盘', onTap: (index, _) { sideMenu.changePage(index); }, icon: ImageIcon(AssetImage('assets/menu/1-1.png')), badgeContent: const Text( '3', style: TextStyle(color: Colors.white), ), ), - Mahmoud Samy
SideMenuItem( priority: 0, title: '仪表盘', onTap: (index, _) { sideMenu.changePage(index); }, icon: ImageIcon(AssetImage('assets/menu/1-1.png')), badgeContent: const Text( '3', style: TextStyle(color: Colors.white), ), ), - undefined
我应该怎么办? - Mahmoud Samy

-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),
];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接