aliplayer 手机全屏控件不显示_Flutter 强大的MediaQuery控件
注意:无特殊说明,Flutter版本及Dart版本如下:
- Flutter版本: 1.12.13+hotfix.5
- Dart版本: 2.7.0
MediaQuery
通常情况下,不会直接将MediaQuery当作一个控件,而是使用MediaQuery.of
获取当前设备的信息,用法如下:
var data = MediaQuery.of(context);
此方式必须放在MediaQuery作用域内,否则会抛出异常,MaterialApp和WidgetsApp都引入了MediaQuery,并且随着屏幕的变化而导致重建,比如旋转屏幕、弹出输入框等。
MediaQueryData
MediaQueryData是MediaQuery.of
获取数据的类型。说明如下:
属性 说明 size 逻辑像素,并不是物理像素,类似于Android中的dp,逻辑像素会在不同大小的手机上显示的大小基本一样,物理像素 = size*devicePixelRatio。 devicePixelRatio 单位逻辑像素的物理像素数量,即设备像素比。 textScaleFactor 单位逻辑像素字体像素数,如果设置为1.5则比指定的字体大50%。 platformBrightness 当前设备的亮度模式,比如在Android Pie手机上进入省电模式,所有的App将会使用深色(dark)模式绘制。 viewInsets 被系统遮挡的部分,通常指键盘,弹出键盘,viewInsets.bottom
表示键盘的高度。 padding 被系统遮挡的部分,通常指“刘海屏”或者系统状态栏。 viewPadding 被系统遮挡的部分,通常指“刘海屏”或者系统状态栏,此值独立于padding
和viewInsets
,它们的值从MediaQuery
控件边界的边缘开始测量。在移动设备上,通常是全屏。 systemGestureInsets 显示屏边缘上系统“消耗”的区域输入事件,并阻止将这些事件传递给应用。比如在Android Q手势滑动用于页面导航(ios也一样),比如左滑退出当前页面。 physicalDepth 设备的最大深度,类似于三维空间的Z轴。 alwaysUse24HourFormat 是否是24小时制。 accessibleNavigation 用户是否使用诸如TalkBack或VoiceOver之类的辅助功能与应用程序进行交互,用于帮助视力有障碍的人进行使用。 invertColors 是否支持颜色反转。 highContrast 用户是否要求前景与背景之间的对比度高, iOS上,方法是通过“设置”->“辅助功能”->“增加对比度”。 此标志仅在运行iOS 13的iOS设备上更新或以上。 disableAnimations 平台是否要求尽可能禁用或减少动画。 boldText 平台是否要求使用粗体。 orientation 是横屏还是竖屏。
padding
、viewPadding
和viewInsets
的区别如下:
使用场景
根据尺寸构建不同的布局
SafeArea控件就是通过MediaQuery.of
来实现的,平板和手机的(或者横屏和竖屏)布局可能是不一样的,比如如下布局:
布局代码如下:
var screenSize = MediaQuery.of(context).size;
if(screenSize.width>oneColumnLayout){//平板布局
}else{//手机布局
}
oneColumnLayout
表示一列布局的宽度。
系统字体变化
很多App都有一个功能就是调节字体大小,通过MediaQuery来实现,实现如下:
@overrideWidget build(BuildContext context) {var _data = MediaQuery.of(context).copyWith(textScaleFactor: 2.0);return Scaffold(appBar: AppBar(title: Text('老孟'),),body: MediaQuery(data: _data,child: Text('字体变大'),),);}
字体变大了一倍。
交流
如果你对Flutter还有疑问或者技术方面的疑惑,欢迎加入Flutter交流群(微信:laomengit)。
同时也欢迎关注我的Flutter公众号【老孟程序员】,公众号首发Flutter的相关内容。
推荐一个Flutter学习地址:http://laomengit.com 里面包含150多个组件的详细用法。
aliplayer 手机全屏控件不显示_Flutter 强大的MediaQuery控件相关推荐
- php让手机全屏,手机网站按比例显示铺满手机全屏/网站两边不留白
如何phpweb手机网站按比例显示铺满手机全屏/网站两边不留白? PHPWEB手机网站,一般手机网站框架宽度为320.640,大多数是这两个宽度,然而在大屏幕手机比如安卓手机上,720分辨率的情况下, ...
- Teamviewer连接服务器显示不能够全屏 或 向日葵连接服务器不能够全屏 或 Teamviewer只显示一个640x480的分辨率选项
欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 Teamviewer连接服务器显示不能够全屏 或 向日葵连接服务器不能够全屏 或 Teamviewer只显示一个640x ...
- 发现qq的mac输入法2.8,在终端全屏下输入不显示待选文字或单词
为什么80%的码农都做不了架构师?>>> 发现qq的mac输入法2.8的版本,在终端全屏下输入不显示待选文字或单词,不知道终端非全屏下是否显示待选单词,忘了测试,谁知道呢, 已 ...
- windows默认的图片查看器打开JPG图片显示为空白,但全屏又能正常显示。
windows默认的图片查看器打开JPG图片显示为空白,但全屏又能正常显示. 打开注册表 进入目录 hkey_classes_root\.jpg 修改默认值为jpegfile即可 当遇到这类故障,我们 ...
- android华为手机全屏显示
解决android华为提示全屏显示 最近发现很多应用在第一次安装之后,都会提示一个 [ 全屏显示] .一看,好像也没啥,但是对开发应用的开发者来说.感觉被打了一巴掌一样.自己好好编码完成的应用.出来个 ...
- 网红汉字手机全屏时钟APP下载
[应用名称]:冷高轮时间 [应用大小]:6.83 [支持平台]:安卓(Android),苹果(iOS) [时钟样式]男神数字,女神数字,梵高数字,王思聪吃热狗数字,手势数字,大写数字,中文汉字,麻将数 ...
- Laya打包的app实现手机全屏 强制关闭虚拟按键
1 先在laya引擎里设置scaleMode: Laya.stage.scaleMode = Stage.SCALE_EXACTFIT; Laya.stage.screenMode = Stage.S ...
- 全屏加载loading显示的解决方法
step1:可以在网页里加一个div用来现实loading. 1 <div id="loading"> 2 <!--这里放你的loading时显示的动画或者文字- ...
- css禁止背景图拉伸_html-css控制背景图全屏拉伸不重复显示
在HTML中,当我们设置背景图,只能采用是否重叠.居中.重叠方向这几个选项 CSS3中设置 body { background:#3d71b8 url(../back_main.png); backg ...
最新文章
- 图论 ---- 启发式合并 + 并查集模拟 + 证明 F. Phoenix and Earthquake
- Appium之创建、连接夜神模拟器
- Raft只读操作实现要点
- 发现问题,是解决问题的第一步
- ba+ii+plus模拟+android,财务计算器(BAII PLUS)
- 标准库time,datetime,calendar,random的使用
- Spring MVC集成测试:断言给定的模型属性有全局错误
- ES6/06/ES6简介,ES6新增语法,let声明变量,const声明常量,var,let和const总结,数组解构,对象解构,箭头函数,剩余参数
- python setup_简述python setup.py install的过程
- 多表查询过滤重复数据_数据分析工具SQL—多表查询
- 速读-对抗攻击的弹性异构DNN加速器体系结构
- fiddler打开之后google浏览器无法上网的解决办法
- 简单写一下未来10年的职业规划
- 咸蛋超人的CxImage学习之路(一)
- 银行 结算 清分清算 对账
- 离散实验sdut3805双射
- unity 下载图片使用并保存在本地
- 支持向量机——SVM算法及例子(代码)
- 转: 网页设计中的一些色彩搭配技巧
- 解决Linux下RTL8723be无线网卡搜索不到wifi的问题——华硕笔记本安装deepin15.11无wifi信号
热门文章
- js验证开始日期不能大于结束日期_js前台判断开始时间是否小于结束时间
- 实例源码_SpringBoot数据库源码解析Template实例化操作
- Django入门(二) 理解Django生命流程周期
- Linux 系统的日志管理
- 北京协和医学院823计算机原理,2017年北京协和医学院放射医学研究所(天津)823计算机原理考研题库...
- linux nginx 安装stream,Centos7下Nginx简单搭建与stream模块简单配置
- linux 7.0修改网卡ip,CentOS7修改网卡为静态IP
- Jdbc访问mysql查询聚合函数_JDBC连接参数设置对Oracle数据库的影响分析
- AIoT原生技术带来更好的应用开发
- @成都的Coder ,一起探讨终端架构持续演进