flutter MediaQuery獲取屏幕寬度高度密度通知欄高度等屏幕信息


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;

效果圖如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM