第一百一十二回 flutter_screenutil包

这篇具有很好参考价值的文章主要介绍了第一百一十二回 flutter_screenutil包。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们在上一章回中介绍了屏幕适配相关的内容,本章回中将介绍flutter_screenutil包,该包主要用来实现屏幕适配.闲话休提,让我们一起Talk Flutter吧。

概念介绍

我们在本章回中介绍的包是flutter_screenutil,它主要用来做屏幕和字体大小的适配,它的实现原理和我们在上一章回中介绍的屏幕适配核心思想一样,这点可以通过该包的源代码看出来。不过该包可以自行选择屏幕宽度或者高度来适配,而且还支持字体大小适配,这对于可以调整字体大小的手机来说非常适用。

此外,该包是国人写的,在dar的仓库中很受欢迎,现在我越来越感受到国内软件的成熟,也希望国内软件发展的越来越好。

使用方法

  1. 在yaml格式的配置文件中引入flutter_screenutil包,并且获取到当前工程中;
  2. 创建ScreenUtilInit类型对象,主要是给该类的designSize和builder属性赋值;
  3. 在其它组件中使用w,h方法适配屏幕上的尺寸,w表示使用屏幕宽度做适配,h表示使用屏幕高度做适配;

上面的步骤看着简单,不过还有一些细节需要说明:

  • builder属性是必选属性,它主要用来创建组件,组件中的任何地方都可以使用该包中的方法实现适配。因此该包通常位于顶层组件中,或者说位于Widget树的根结点上,其位置和provider所在的位置类似。
  • designSize属性是可选属性,建议把UI设计稿中的基准尺寸赋值给它。如果不给它赋值,那么使用默认值360*690.
  • 该包提供的w,h方法是getter方法,使用十分方便,这些方法是在基础类型上扩展(extension)出的方法,刚开始使用时不理解,看一下它的源代码就能明白其中的原理(后面章回中会介绍)。

示例代码

Scaffold(
  appBar: AppBar(
    title: const Text('Example of Screen'),
    backgroundColor: Colors.purpleAccent,
  ),
  ///screen util包最好在根目录进行初始化,用它包含MaterialApp比较好
  body: ScreenUtilInit(
    ///我在这里输入的是分辨率,单位为dp,没有转换成px
    designSize:const Size(375.0,667.0),
    builder: (context,child) {
      return HomeWidget();
    },
    ///这个child的值和builder中参数的child相同
    child: HomeWidget(),
  ),
);

///使用screenutil包中值来适配屏幕
Container(
  color: Colors.green,
  width: 200.w,
  height: 200.w,
  child: const  Icon(Icons.face),
),

上面的代码中把包的初始化操作放在了根Widget中,也就是代码中Scaffold组件的body属性中,包的子组件中是HomeWidget,因此在HomeWidget组件的任何位置都可以使用包中的适配方法。

示例代码中给一个容器做了屏幕适配,上一章回中的示例代码中也是使用容器做适配。编译并且运行该代码,可以看到两个容器经过适配后的大小都一样,这说明,我们自定义的适配方法和包中提供的适配方法都可以用来做屏幕适配,而且适配效果相同。

经验分享

在App开发过程中屏幕适配是必不可少的内容,在原生开发中Andoird使用百分比布局和约束布局来做适配,IOS使用AutoLayout或者故事板中的约束来做适配。不管是哪种形式的适配,它们的核心思想都相同:把相同的尺寸乘以一定的比率,使得该尺寸在不同大小的屏幕上占用的屏幕空间相同。这个在Andoird中的百分比布局中体现特别明显。

综合这几种屏幕适配方式来看,flutter_screenutil包的适配方法和IOS中的AutoLayout最为相似,不过它的使用方法要比AutoLayout简单。

看官们,关于"flutter_screenutil包"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!文章来源地址https://www.toymoban.com/news/detail-646260.html

到了这里,关于第一百一十二回 flutter_screenutil包的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第一百一十六天学习记录:C++提高:STL-string(黑马教学视频)

    string是C++风格的字符串,而string本质上是一个类 string和char 区别 1、char 是一个指针 2、string是一个类,类内部封装了char*,管理这个字符串,是一个char 型的容器。 特点: string类内部封装了很多成员方法 例如:查找find,拷贝copy,删除delete替换replace,插入insert string管理char

    2024年02月15日
    浏览(47)
  • Android之关机/重启/recovery模式(一百一十五)

    1.方式一:App调用系统api 2.方式二:setprop 注意:在init的reboot.c中,           adb reboot -p命令其实就是调用的setprop命令开关机的。  3.方式三:

    2024年02月14日
    浏览(46)
  • Emacs之实现跨程序选中自动复制功能(一百一十八)

    简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏: Audio工程师进阶系列 【 原创干货持续更新中…… 】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:An

    2024年02月15日
    浏览(81)
  • 一百一十三、DBeaver——从hive同步数据到clickhouse

    目标:把hive的DM层结果数据导出到clickhouse数据库,试了kettle、sqoop等多种方法都报错,尤其是kettle,搞了大半天发现还是不行。结果目前就只能用DBeaver同步数据。 准备工作:hive和clickhouse中都建好表 第一步,右击clickhouse中的表,选择导入数据 第二步,在源类型和格式中,由

    2024年02月13日
    浏览(56)
  • Emacs之改造最快文本搜索工具ripgrep(一百一十九)

    简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏: Audio工程师进阶系列 【 原创干货持续更新中…… 】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:An

    2024年02月15日
    浏览(46)
  • C/C++基础讲解(一百一十九)之经典篇(最优美的图案)

    很多时候,特别是刚步入大学的学子们,对于刚刚开展的计算机课程基本上是一团迷雾,想要弄明白其中的奥秘,真的要花费一些功夫,我和大家一样都是这么啃过来的,从不知到知知,懵懂到入门,每一步都走的很艰辛,课程上,大学老师基本上讲解上机实操得时间特别有

    2024年02月09日
    浏览(49)
  • 客快物流大数据项目(一百一十七):网关 Spring Cloud Gateway

    文章目录 网关 Spring Cloud Gateway 一、简介 1、功能特性

    2024年02月04日
    浏览(80)
  • 客快物流大数据项目(一百一十三):注册中心 Spring Cloud Eureka

    文章目录 注册中心 Spring Cloud Eureka 一、Eureka 简介 二、架构图

    2023年04月25日
    浏览(66)
  • 一百一十一、Hive——从HDFS到Hive的数据导入(静态分区、动态分区)

    分区表实际上就是对应一个 HDFS 文件系统上的独立的文件夹, Hive 中的分区就是分目录 ,把一个大的数据集根据业务需要分割成小的数据集。 在查询时通过 where 子句中的表达式选择查询所需要的指定的分区,这样的查询效率 会提高很多,所以我们需要把常常用在where 语句中

    2024年02月12日
    浏览(58)
  • C/C++基础讲解(一百一十一)之经典篇(数组逆序/静态变量/auto变量)

    很多时候,特别是刚步入大学的学子们,对于刚刚开展的计算机课程基本上是一团迷雾,想要弄明白其中的奥秘,真的要花费一些功夫,我和大家一样都是这么啃过来的,从不知到知知,懵懂到入门,每一步都走的很艰辛,课程上,大学老师基本上讲解上机实操得时间特别有

    2024年02月08日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包