MediaQuery
能夠創建媒體查詢解析給定的子樹。函數
例如,要了解當前媒體的大小(例如,包含您的應用程序的窗口),您能夠從MediaQuery.of
:MediaQuery.of(context).size
返回的ediaQueryData
中讀取MediaQueryData.size
屬性。佈局
使用MediaQuery.of
查詢當前媒體將致使您的窗口小部件在MediaQueryData
更改時自動重建(例如,若是用戶旋轉其設備)。字體
若是MediaQuery
沒有在範圍內,則MediaQuery.of
方法將拋出異常,除非將nullOk
參數設置爲true
,在這種狀況下它返回null
。動畫
const MediaQuery({Key key, @required MediaQueryData data, @required Widget child })
複製代碼
常量構造函數:建立一個向其子Widget提供MediaQueryData
的窗口小部件。ui
factory MediaQuery.removePadding({Key key, @required BuildContext context, bool removeLeft: false, bool removeTop: false, bool removeRight: false, bool removeBottom: false, @required Widget child })
複製代碼
工廠構造函數:建立一個新的MediaQuery
,它繼承自給定上下文的環境MediaQuery
,但刪除指定的填充。spa
factory MediaQuery.removeViewInsets({Key key, @required BuildContext context, bool removeLeft: false, bool removeTop: false, bool removeRight: false, bool removeBottom: false, @required Widget child })
複製代碼
工廠構造函數:建立從給定上下文繼承環境MediaQuery
的新MediaQuery
,但刪除指定的視圖insets
。操作系統
static MediaQueryData of(BuildContext context, { bool nullOk = false })
複製代碼
給定的上下文的最近實例的數據。 可使用此功能查詢屏幕方向的大小。當該信息發生變化時,小部件將被安排重建,使小部件保持最新狀態。code
MediaQueryData media = MediaQuery.of(context);
複製代碼
關於一個媒體(例如,window)的信息。例如,MediaQueryData.size
屬性包含當前窗口的寬度和高度。orm
要獲取給定BuildContext
的當前MediaQueryData
,使用MediaQuery.of
函數。例如,要獲取當前窗口的大小,請使用MediaQuery.of(context).size
。繼承
MediaQueryData
包含兩個EdgeInsets
值:padding
和viewInsets
。這些值反映了設備的配置,並被許多頂級小部件使用,如SafeArea
和Cupertino
和Material scaffold
小部件。填充值定義可能不徹底可見的區域,例如iPhone X上的顯示「凹口」。viewInsets
值定義根本不可見的區域,一般是由於它們被設備的鍵盤遮擋。
viewInsets
和padding
值是獨立的,它們都是從MediaQuery
小部件的邊界測量的。 WidgetsApp
建立的頂級MediaQuery
的邊界與包含該應用程序的窗口相同。
MediaQueryData.fromWindow(ui.Window window);
複製代碼
基於給定窗口爲媒體查詢建立數據
MediaQuery.removePadding
工廠的新MediaQuery
小部件。