flutter MediaQuery获取屏幕宽度高度密度通知栏高度等屏幕信息

本文详细介绍了Flutter中的MediaQueryData类,包括其各项属性的作用及应用场景,如获取屏幕尺寸、密度、边距等,并提供了示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MediaQuery是建立媒体查询解析给定数据的子树。
例如,要了解当前媒体的大小(例如,包含您的应用程序的窗口),您可以从MediaQuery.of返回的MediaQueryData中读取MediaQueryData.size属性: MediaQuery.of(context).size 以上是官网说的

参数详解

由于使用时是获取到MediaQueryData。所以只介绍MediaQueryData的属性

属性说明
MediaQueryData
size一个包含宽度和高度的对象,单位是dp(乘以密度就是你设备的像素)
devicePixelRatio密度(像素比)
textScaleFactor每个逻辑像素的字体像素数
platformBrightness主机平台当前亮度模式
viewInsets完全被系统UI(通常是设备的键盘)遮挡的显示部分
padding我们通常取上边刘海高度和下边导航高度
alwaysUse24HourFormat格式化时间时是否使用24小时格式
accessibleNavigation用户是否使用TalkBack或VoiceOver等辅助功能服务与应用程序进行交互
invertColors设备是否反转平台的颜色
disableAnimations平台是否要求尽可能禁用或减少动画
boldText平台是否请求使用粗体字体重绘制文本
  

代码示例

//屏幕大小
    Size mSize = MediaQuery.of(context).size;
    //密度
    double mRatio = MediaQuery.of(context).devicePixelRatio;
    //设备像素
    double width = mSize.width * mRatio;
    double height = mSize.height * mRatio;

    // 上下边距 (主要用于 刘海  和  内置导航键)
    double topPadding = MediaQuery.of(context).padding.top;
    double bottomPadding = MediaQuery.of(context).padding.bottom;

    double textScaleFactor = MediaQuery.of(context).textScaleFactor;
    Brightness platformBrightness = MediaQuery.of(context).platformBrightness;
    EdgeInsets viewInsets = MediaQuery.of(context).viewInsets;
    EdgeInsets padding = MediaQuery.of(context).padding;
    bool alwaysUse24HourFormat = MediaQuery.of(context).alwaysUse24HourFormat;
    bool accessibleNavigation = MediaQuery.of(context).accessibleNavigation;
    bool invertColors = MediaQuery.of(context).invertColors;
    bool disableAnimations = MediaQuery.of(context).disableAnimations;
    bool boldText = MediaQuery.of(context).boldText;

效果图

完整代码

查看完整代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马志武

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值