flutter R库对图片资源进行自动管理

项目中对资源的使用是开发过程中再常见不过的一环。 一般我们在将资源导入到项目中后,会通过资源名称来访问。 但在很多情况下由于我们疏忽输入错了资源名称,从而导致资源无法访问。 所以,急需解决两个问题:

  • 资源编译期可检查
  • 可方便预览资源

安装相关插件

在vscode中安装两个插件, 如下 :

● Flutter Assets Gen 插件: 负责资源生成

● Image preview 插件 : 负责资源图片预览

使用后的效果如下:

配置

插件安装完成后, 在pub.yaml中配置 。可放到文件最后, 最左对齐

yaml 复制代码
flutter_assets:
  assets_path: assets/images/
  output_path: lib/
  filename: r.dart
  classname: R

接着执行如下操作:

vscode 上点击 '查看' 下的 "命令面板" . 输入 Flutter Assets: Generate

如果配置都正确, 这时会在指定目录下生成 r.dart文件 。

类似如下 :

dart 复制代码
// ignore_for_file: prefer_single_quotes
class R {
  R._();

  /// Assets for assetsImagesIcLauncher
  /// assets/images/ic_launcher.png
  static const String assetsImagesIcLauncher = "assets/images/ic_launcher.png";

  /// Assets for assetsImagesIconBack
  /// assets/images/icon_back.png
  static const String assetsImagesIconBack = "assets/images/icon_back.png";

  /// Assets for assetsImagesIconCommunityGrey
  /// assets/images/icon_community_grey.png
  static const String assetsImagesIconCommunityGrey = "assets/images/icon_community_grey.png";

  /// Assets for assetsImagesIconCommunitySelected
  /// assets/images/icon_community_selected.png
  static const String assetsImagesIconCommunitySelected = "assets/images/icon_community_selected.png";

  /// Assets for assetsImagesIconHomeGrey
  /// assets/images/icon_home_grey.png
  static const String assetsImagesIconHomeGrey = "assets/images/icon_home_grey.png";
}

r.dart 文件将资源都声明为了全局常量,对比直接录入字符串的方式,减少了因录入不对而导致的加载失败问题。

使用

需要先导入 r.dart文件

dart 复制代码
import 'package:getx_demo/r.dart';
  • 显示本地图片 :
dart 复制代码
Image.asset(R.assetsImagesIconBack);
相关推荐
lpftobetheone17 分钟前
【Flutter】如何理解Dart语言的Isolate API
flutter
国医中兴39 分钟前
Flutter 三方库 inject_generator 的鸿蒙化适配指南 - 自动化依赖注入注入生成器、驱动鸿蒙大型工程解耦实战
flutter·harmonyos·鸿蒙·openharmony·inject_generator
chdo1 小时前
从需求到实现:Flutter可变宽度滑动器的探索之路
flutter
国医中兴2 小时前
Flutter 三方库 themed_color_palette 的鸿蒙化适配指南 - 定义语义化调色板、在鸿蒙端实现像素级的主题切换实战
flutter·harmonyos·鸿蒙·openharmony·themed_color_palette
不爱吃糖的程序媛2 小时前
2026 年如何上车 Flutter-OH:环境搭建与上手流程
flutter
国医中兴2 小时前
Flutter 三方库 aws_sqs_api 鸿蒙适配指南 - 实现分布式消息异步解耦、在 OpenHarmony 上打造高可用云端队列控制中枢实战
flutter·harmonyos·aws
国医中兴3 小时前
Flutter 三方库 toggleable 鸿蒙适配指南 - 实现声明式状态切换逻辑、在 OpenHarmony 上打造极简交互组件引擎实战
flutter·交互·harmonyos
国医中兴3 小时前
Flutter 三方库 schedules 的鸿蒙化适配指南 - 玩转复杂时间调度算法、构建高效的鸿蒙办公协作系统实战
flutter·harmonyos·鸿蒙·openharmony
ITKEY_3 小时前
flutter打包ipad 并上传Appstore
flutter·ios·ipad
bu_xue17 小时前
【LiveStates 01】别再手动 watch 了:开启 Flutter “自动追踪” DX 革命
flutter