我有100张图片需要在列表中显示.我不想硬编码所有的名字.

我怎么才能知道图片的名称呢?

我想要这样的代码:

final List<String> imageNames = await WhatEver.getNamesOfImagesInAssetsDirectory();
final widgets = imageNames.map((fileName) => Image.asset('images/${fileName}.png')).toList()

推荐答案

我已经在StatefulWidget的内部实现了下面的函数

    Future _initImages() async {
      // >> To get paths you need these 2 lines
      final manifestContent = await rootBundle.loadString('AssetManifest.json');
    
      final Map<String, dynamic> manifestMap = json.decode(manifestContent);
      // >> To get paths you need these 2 lines

      final imagePaths = manifestMap.keys
          .where((String key) => key.contains('images/'))
          .where((String key) => key.contains('.svg'))
          .toList();
    
      setState(() {
        someImages = imagePaths;
      });
    }

AssetManifest.json包含您在pubspec.yaml中添加的所有assets资源 的所有数据

Dart相关问答推荐

为什么在穷举switch 表达式中需要显式向下转换?

Dart StreamController().stream 等于 == 但不相同

从扩展类访问抽象类属性

如何判断一个数字是否是dart中另一个数字的倍数?

Flutter drawArc() 方法绘制完整的圆而不仅仅是圆弧

Flutter 中的with关键字

在`lib`文件夹中使用`src`子文件夹有什么好处吗

如何使用 Dart 分析器从源代码生成 AST 并使用 AST?

如何防止键盘在Flutter中按提交键时失效?

如何在Flutter应用程序中使用套接字?

如何更改手机屏幕上的Flutter应用程序名称显示?

Flutter: shared preferences

如何在 Dart 中创建我们自己的metadata元数据?

如何在 Dart 中创建 StreamTransformer?

在 Dart 中,List.from 和 .of 以及 Map.from 和 .of 有什么区别?

Dart,对泛型的限制?

Dart - 如何对 Map 的键进行排序

Dart 字符串比较器

如何停止 Dart 的 .forEach()?

如何在 Dart 中执行运行时类型判断?