当前位置: 首页 > news >正文

Flutter 宽高自适应

在Flutter开发中也需要宽高自适应,手动写一个工具类,集成之后在像素后面直接使用 px或者 rpx即可。
工具类代码如下:

import 'dart:ui';class HYSizeFit {static double screenWidth = 0.0;static double screenHeight = 0.0;static double physicalWidth = 0.0;static double physicalHeight = 0.0;static double dpr = 0.0;static double statusHeight = 0.0;static double rpx = 0.0;static double px = 0.0;static void initialize({double standardSize = 750}) {// 1、手机的物理分辨率physicalWidth = window.physicalSize.width;physicalHeight = window.physicalSize.height;// 2、 获取dprdpr = window.devicePixelRatio;// 3、宽度和高度screenWidth = physicalWidth / dpr;screenHeight = physicalHeight / dpr;// 4、 状态栏高度statusHeight = window.padding.top / dpr;// 5、计算 rpx 的大小rpx = screenWidth / standardSize;px = screenWidth / standardSize * 2;}// 按照像素来设置static double setPx(double size) {return px * size;}// 按照rpx来设置static double setRpx(double size) {return rpx * size;}
}

扩展(extension)代码

import 'hysize.dart';extension DoubleFit on double {double get px {return HYSizeFit.setPx(this);}double get rpx {return HYSizeFit.setRpx(this);}
}extension IntFit on int {double get px {return HYSizeFit.setPx(toDouble());}double get rpx {return HYSizeFit.setRpx(toDouble());}
}

开始使用
1、需要在 main中进行初始化

  Widget build(BuildContext context) {// 初始化HYSizeFit.initialize();return FlutterBoostApp(routeFactory, appBuilder: appBuilder);}
}

2、在使用的地方导入扩展文件直接使用即可

Container(width: 200.0.px,height: 200.px,
)
http://www.lryc.cn/news/127013.html

相关文章:

  • LeetCode 0833. 字符串中的查找与替换
  • Redis对象和五种常用数据类型
  • 常用的Elasticsearch查询DSL
  • 计算机网络笔记
  • 高效反编译luac文件
  • 密码湘军,融合创新!麒麟信安参展2023商用密码大会,铸牢数据安全坚固堡垒
  • 关于视频监控平台EasyCVR视频汇聚平台建设“明厨亮灶”具体实施方案以及应用
  • 区块链系统探索之路:私钥的压缩和WIF格式详解
  • DiffusionDet: Diffusion Model for Object Detection
  • CH01_重构、第一个示例
  • 学习篇之React Fiber概念及原理
  • 商城-学习整理-高级-全文检索-ES(九)
  • 无人机跟随一维高度避障场景--逻辑分析
  • Android Studio Giraffe控制台乱码
  • 云原生 envoy xDS 动态配置 java控制平面开发 支持restful grpc实现 EDS 动态endpoint配置
  • Linux--实用指令与方法(部分)
  • 常见期权策略类型有哪些?
  • tomcat服务七层搭建动态页面查看
  • sql A表(含有部分B表字段) 向B表插入A表数据
  • 如何用思维导图+Markdown提升工作效率?
  • 睿趣科技:抖音开网店现在做还来得及吗
  • C++——list的简要介绍
  • Java自学网站推荐,专业教学快速提升
  • 深入学习SpringCloud Alibaba微服务架构,揭秘Nacos、Sentinel、Seata等核心技术,助力构建高效系统!
  • 【iMessage频發软件苹果群发技术开源原创】当 APNs 发送通知到一个离线设备时,APNs 会把通知存储起来(一定的时间内),当设备上线时再递送给设备。
  • 【数据结构】_8.二叉树OJ
  • 酷开系统 | 酷开科技大数据,更好的与目标消费人群建立联系
  • 无涯教程-Perl - study函数
  • dfs深度搜索入门之滑雪
  • Python程序设计——元组、集合和字典