首页 > 解决方案 > 我有一个字符串列表,我想根据一个词显示一个图标

问题描述

我有一个列表“生活”、“汽车”、“汽车”,如果这个词是生活,我想返回一个最喜欢的图标,如果这个词是汽车,我想返回一个汽车图标。这是我做的课

class IcoImage extends Icon {
  final List<String> entries;
  final int i = 0;

  IcoImage({Key key, this.entries}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    for (int i = 0; i < entries.length; i++) {
    return entries[i].toString()=='Life'?Icons.favorite_border:Icons.directions_car;

    }
  }
}

标签: flutter

解决方案


为什么不将图标存储在您的资产文件夹中,然后像这样访问它们:

class IcoImage extends Icon {
  final List<String> entries;
  final int i = 0;

  IcoImage({Key key, this.entries}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    for (int i = 0; i < entries.length; i++) {
    return Image.asset(
                    'assets/images/${entries[i].toString()}.png');
    }
  }
}

或者您可以传递地图而不是传递列表

List<Map<String, IconData>> _myIcons = [
    {
      'name': 'Favorite',
      'icon': Icons.favorite,
    },
    {
      'name': 'Car',
      'icon': Icons.directions_car,
    },

];

并返回这个Icon(_myIcons[index]['icon']);


推荐阅读