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/
根据在 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/