Flutter 樣式基礎之 MediaQueryData

YYDev發表於2019-09-08

介紹

MediaQueryData 它是MediaQuery的主要資訊載體,是用於儲存MediaQuery的各項資料的實體類。如果傳入的context沒有MediaQuery資訊,則呼叫MediaQuery.of方法將會丟擲異常。除非nullOk引數設定為true,在這種情況下它返回null。

建構函式

 MediaQueryData({Size size: Size.zero,
 double devicePixelRatio: 1.0, 
 double textScaleFactor: 1.0,
 Brightness platformBrightness: Brightness.light,
 EdgeInsets padding: EdgeInsets.zero, 
 EdgeInsets viewInsets: EdgeInsets.zero,
 EdgeInsets viewPadding: EdgeInsets.zero,
 bool alwaysUse24HourFormat: false, 
 bool accessibleNavigation: false, 
 bool invertColors: false, 
 bool disableAnimations: false,
 bool boldText: false }) 
 
 MediaQueryData.fromWindow(Window window) //基於給定視窗為MediaQuery建立資料.
複製程式碼

屬性

  • accessibleNavigation → bool 使用者是否使用TalkBack或VoiceOver等輔助功能服務與應用程式進行互動。
  • alwaysUse24HourFormat → bool 格式化時間時是否使用24小時格式。
  • boldText → bool 是否使用了粗體字型繪製文字。
  • devicePixelRatio → double 單位邏輯畫素的裝置畫素數量,即裝置畫素比。這個數字可能不是2的冪,實際上它甚至也可能不是整數。例如,Nexus 6的裝置畫素比為3.5。
  • disableAnimations → bool 平臺是否要求儘可能禁用或減少使用動畫。
  • hashCode → int 此物件的雜湊碼
  • invertColors → bool 裝置是否反轉平臺的顏色
  • orientation → Orientation 螢幕方向(橫向/縱向)
  • padding → EdgeInsets 顯示器的部分被系統UI部分遮擋,通常由硬體顯示“凹槽”或系統狀態列
  • platformBrightness → Brightness 當前的亮度模式
  • size → Size 裝置尺寸資訊,如螢幕的大小,單位 pixels
  • textScaleFactor → double 每個邏輯畫素的字型畫素數
  • viewInsets → EdgeInsets 顯示器的各個部分完全被系統UI遮擋,通常是裝置的鍵盤
  • viewPadding → EdgeInsets 顯示器的部分被系統UI部分遮擋,通常由硬體顯示“凹槽”或系統狀態列

Insets and Padding

方法

copyWith

copyWith({ Size size, double devicePixelRatio, double textScaleFactor, Brightness platformBrightness, EdgeInsets padding, EdgeInsets viewPadding, EdgeInsets viewInsets, bool alwaysUse24HourFormat, bool disableAnimations, bool invertColors, bool accessibleNavigation, bool boldText }) → MediaQueryData 拷貝此 MediaQueryData物件,建立一個副本,但將新欄位替換為傳入的給定欄位。

removePadding

removePadding({ bool removeLeft:false, bool removeTop:false, bool removeRight:false, bool removeBottom:false }) → MediaQueryData 建立此 MediaQueryData 的副本,但將給定的填充替換為零。

removeViewInsets

removeViewInsets({ bool removeLeft:false, bool removeTop:false, bool removeRight:false, bool removeBottom:false }) → MediaQueryData 建立此 MediaQueryData 的副本,但將給定的viewInsets 替換為零。

removeViewPadding(新版本原始碼已找不到該方法)

作者

Flutter 樣式基礎之 MediaQueryData
xiaosongzeem

相關文章