Flutter包管理器和资源管理使用学习
什么叫包管理器
包管理器就是用来管理程序运行依赖的一个配置应用。在程序运行中,我们会用到各种各样的第三方程序包,若我们手动管理这些程序,他将变得十分臃肿。这时候便诞生了包管理器,类似于手机中的AppStore。比如说我们手机中的某个程序更新了,我们就可以通过AppStore来更新。同样的我们可以通过包管理来更新我们程序中用到的依赖包。
Flutter 包管理器
Flutter包管理器是Yanr。它能够快速、安全、 并可靠地完成这些工作。通过Yarn你可以使用其他开发者针对不同问题的解决方案,使自己的开发过程更简单,你还可以上报或者贡献解决方案。一旦问题被修复, Yarn会更新保持同步,Flutter项目默认的配置文件是pubspec.yaml。
name: flutter_demo
description: A new Flutter project.
version: 1.0.0
dependencies:
flutter:
sdk: flutter
dev_dependencies:
flutter_test:
sdk: flutter
flutter:
assets:
- images/a_dot_burr.jpeg
- images/a_dot_ham.jpeg
fonts:
- family: Schyler
fonts:
- asset: fonts/Schyler-Regular.ttf
- asset: fonts/Schyler-Italic.ttf
style: italic
name:应用或包名称。
description: 应用或包的描述、简介。
version:应用或包的版本号。
dependencies:生产环境依赖的工具包。
dev_dependencies:开发环境依赖的工具包。
flutter:flutter相关的配置选项。
- assets: 配置静态文件
- font: 配置字体文件
Pub仓库
Pub 是Google官方的Dart Packages仓库,类似于node中的npm仓库,我们可以在上面查找我们需要的包和插件,也可以向pub发布我们的包和插件。关于安装依赖的相关步骤,这里不展开讲,自行学习。
资源管理
flutter资源主要包括静态数据(例如JSON文件)、图标和图片(JPEG,WebP,GIF,动画WebP / GIF,PNG,BMP和WBMP)等。每个asset都通过相对于pubspec.yaml文件所在位置的进行配置。如上所述的image图片、font字体等。
配置图片资源
- 首先在pubspec.yaml flutter 配置环境下,配置静态文件目录或者文件名
assets:
- images/tabbar // 可以直接配置静态资源文件目录
- images/image.png // 也可以配置图片名
- 使用资源图片资源
Center(
child: Image.asset(
'images/image.png',
width: 350,
height: 335,
),
),
关于图片资源存放目录,官网说要必须配置2.x、3.x 文件目录(AssetImage 可以将asset的请求逻辑映射到最接近当前设备像素比例(dpi)的asset。),我在开发中没有配置,图片也正常加载了。所以你若没有此类需求,只是单纯去加载图片资源,建议创建一个图片资源文件夹就够了。 若我出现引导错误,及时纠正。
配置全局字体资源
- 下载字体资源包,存放在程序主目录/fonts 文件夹(存放目录可以是任何位置,需要在pubspec.yaml 配置正确的目录地址)
- 在pubspec.yaml flutter 配置环境下,配置静态文件目录或者文件名
fonts:
- family: Avenir
fonts:
- asset: fonts/Avenir/Avenir.ttf // 配置正确的字体存放路径
weight: 900
- 在main.dart 中定义全局字体配置
MaterialApp(
theme: ThemeData(fontFamily: 'Avenir'),
debugShowCheckedModeBanner: false,
),
);
配置完成后,你程序中的默认字体就是你所下载的字体文件了。是不是so easy!
关于静态资源配置,上述两种是我在项目中经常遇到的一些配置。关于其他静态资源配置,暂时没有遇到,若之后遇到了,解决了,我会及时补充,还请各位同学理解。
结束语
关于flutter包管理器和资源管理的学习到这里就结束了,更多关于Flutter 包管理器资源管理的资料请关注编程网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341