Flutter 项目中的多个资产

Multiple assets in Flutter project

根据在 Flutter 项目中包含图像资产的文档,我需要将它们添加到 pubspec.yaml,如下所示:

flutter:
  assets:
   - assets/my_icon.png
   - assets/background.png

但是我有大约 900 张图像需要包含在我的应用程序中,我真的需要手动将一张一张地包含在文件中吗?

是的,目前这是必需的并且是一个已知的限制。

Wildcarding assets in pubspec.yaml (or allow an entire directory to be included) #4890

您可以使用代码生成来一次列出所有资产, 但是当列表变得太长时,您也会遇到麻烦。

这不再是限制。您现在可以将所有资产包含在一个目录中。

flutter docs 中指出:

要包含目录下的所有资产,请在末尾指定带有 / 字符的目录名称:

flutter:
  assets:
    - directory/
    - directory/subdirectory/

Flutter开发工具Flr(Flutter-R)可以帮助您在pubspec.yaml中自动指定image/text/font个assets并生成r.g.dart个文件。

更多详情见:

遗憾的是,您无法一次导入整个资产/文件夹,但您现在可以导入一个文件夹中的所有资产。

# ❌ Don't Import every files inside assets folder, its tiring ❌             
assets:
  - assets/audio/celebrate.mp3
  - assets/audio/splash.mp3
  - assets/lottie/paper_plane.json
  - assets/lottie/celebration.json
  - assets/images/png/stats.png
  - assets/images/alert.svg

# ❌ Import all assets at once, Not allowed ❌
assets:
  - assets/        

# ✅ Just import every folders inside assets ✅
assets:
  - assets/lottie/
  - assets/images/svg/
  - assets/images/png/
  - assets/audio/