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
小部件。