flutter rpx屏幕适配方案
rpx是小程序中的适配方案,它将750px作为设计稿,1rpx=屏幕宽度/750
,其它所有的单位都使用rpx单位。
- 不管是什么屏幕,统一分成750份
- 在iPhone8上: 1rpx = 375/750 = 0.5px
- 在iPhone12proMax 上:1rpx = 428/750 = 0.571px
所以我们就可以通过上面的计算方式,算出一个rpx,再将自己的size和rpx单位相乘即可: 比如300px的宽度:3002rpx
- 在iPhone8上计算出的结果是
300px
- 在在iPhone12proMax上计算出的结果是
342.6px
通过计算可以看出,还是有明显数据上的差别的。
这里也是封装一个类 Adapt
,直接可以获取屏幕的信息
class Adapt {static MediaQueryData _mediaQueryData = MediaQueryData();static double screenWidth = 0;static double screenHeight = 0;static double rpx = 0;static double px = 0;static void initialize(BuildContext context, {double standardWidth = 750}) {_mediaQueryData = MediaQuery.of(context);screenWidth = _mediaQueryData.size.width;screenHeight = _mediaQueryData.size.height;rpx = screenWidth / standardWidth;px = screenWidth / standardWidth * 2;}// 按照像素来设置static double setPx(double size) {return Adapt.rpx * size * 2;}// 按照rxp来设置static double setRpx(double size) {return Adapt.rpx * size;}
}
示例代码
@override
Widget build(BuildContext context) {Adapt.initialize(context);return Scaffold(appBar: AppBar(title: const Text('屏幕适配'),),body: Center(child: Container(width: Adapt.setPx(300),height: Adapt.setPx(300),color: Colors.orange,alignment: Alignment.center,child: Text('Hello Word',style: TextStyle(fontSize: Adapt.setPx(30)),textAlign: TextAlign.center,),),),);
}
注意
:一定要在已经有 MaterialApp
的 Widget 中使用 context ,否则是无效的。这里定义默认效果图的尺寸是 375*667
,这里是可以自定义传入效果图的宽度的。
原文链接:https://juejin.cn/post/7039868577658175524
flutter rpx屏幕适配方案相关推荐
- 11-Flutter移动电商实战-首页_屏幕适配方案和制作
11-Flutter移动电商实战-首页_屏幕适配方案和制作 1.flutter_ScreenUtil插件简介 flutter_ScreenUtil屏幕适配方案,让你的UI在不同尺寸的屏幕上都能显示合理 ...
- 安卓屏幕适配方案(根据今日头条方案,升级版)
前言 屏幕适配方案有很多,比如原生的dp,鸿洋大神的AutoLayout,宽高限定符,今天我用缺点比较小的今日头条方案 头条适配方案的文章链接:https://mp.weixin.qq.com/s/d ...
- 今日头条屏幕适配方案落地研究
目录 前言 各平板数据比较 为什么看起来更小了?(头条方案跟最小宽度方案比较) smallesWidth 方案迁移 优缺点 issue 附录(适配核心代码) 前言 大家好,现在给大家推荐一种极低版本的 ...
- android屏幕适配教程,Android屏幕适配方案,android屏幕适配
Android屏幕适配方案,android屏幕适配 文章转载禁止用于商业用途,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处莫高雷草原以及作者@JiongBull. Android屏幕适配方 ...
- 给你一个全自动的屏幕适配方案(基于SW方案)二 —— Calces.Screen插件拓展功能升级...
如果不了解Calces.screen插件的用法或者想深入了解sw( Smallest Width) 屏幕适配方案的话,可以阅读上一篇文章: 给你一个全自动的屏幕适配方案(基于SW方案)!-- 解放你和 ...
- Cocos2d-html5 2.2.2的屏幕适配方案
来自:http://www.cocos2d-x.org/docs/manual/framework/html5/resolution-policy-design/zh 关于屏幕适配 作为WEB开发者, ...
- 2021年最详细的Android屏幕适配方案汇总
1 Android屏幕适配的度量单位和相关概念 建议在阅读本文章之前,可以先阅读快乐李同学写的文章<Android屏幕适配的度量单位和相关概念>,这篇文章包含了阅读本文的一些基础知识,推荐 ...
- 移动端高清、多屏幕适配方案
2019独角兽企业重金招聘Python工程师标准>>> 移动端高清.多屏幕适配方案 http://div.io/topic/1092 https://github.com/amfe/ ...
- android smallestWidth 限定符屏幕适配方案dimens.xml
简介 smallestWidth 限定符适配方案 这个方案的的使用方式和我们平时在布局中引用 dimens 无异,核心点在于生成 dimens.xml 文件,但是已经有大神帮我们做了这 一步 ├── ...
最新文章
- linux pthread_join 使用记录
- axurehtml打开不用用_还有人花钱买会员看剧?赶紧用iPhone免费追剧
- labview 软件编程规范
- .Net 应用程序体系结构—C#高级编程(第10版)学习笔记5
- 计算机科学课程体系核心内容,计算机科学教育的课程体系之研究
- 虚幻4 控制台_虚幻引擎打造足球手游!实况足球新引擎测试今日开启
- Ubuntu安装JDK6和JDK5
- 用python编写一个弹球游戏
- Axure插入ArcGIS地图或天地图
- Windows 10 21H1开启关闭卓越模式
- POI Invalid column index (-5).Allowable column range for EXCEL2007 is (0..16383) or (‘A‘..‘XFD‘)问题解决
- 微信PC版多开的方法
- 金属塑性成形计算机模拟仿真,金属塑性成形计算机模拟的若干进展
- 玩转【斗鱼直播APP】系列之界面分析
- 阿里技术风险与效能部负责人张瓅玶:从底层资源到核心竞争力 阿里巴巴的深度用云实践
- ios11更新提示信任_iphone 信任_苹果ios11信任设置在哪
- 说说IO(七)- RAID
- D. Cloud of Hashtags(逆向贪心)
- stm32之中断模式
- java重命名sheet失败_错误1004重命名工作表