MediaQuery class

Establishes a subtree in which media queries resolve to the given data.

For example, to learn the size of the current view (e.g., the FlutterView containing your app), you can use MediaQuery.sizeOf: MediaQuery.sizeOf(context).

Querying the current media using specific methods (for example, MediaQuery.sizeOf or MediaQuery.paddingOf) will cause your widget to rebuild automatically whenever that specific property changes.

Querying using MediaQuery.of will cause your widget to rebuild automatically whenever any field of the MediaQueryData changes (e.g., if the user rotates their device). Therefore, unless you are concerned with the entire MediaQueryData object changing, prefer using the specific methods (for example: MediaQuery.sizeOf and MediaQuery.paddingOf), as it will rebuild more efficiently.

If no MediaQuery is in scope then MediaQuery.of and the "...Of" methods similar to MediaQuery.sizeOf will throw an exception. Alternatively, the "maybe-" variant methods (such as MediaQuery.maybeOf and MediaQuery.maybeSizeOf) can be used, which return null, instead of throwing, when no MediaQuery is in scope.

See also:

Inheritance

Constructors

MediaQuery({Key? key, required MediaQueryData data, required Widget child})
Creates a widget that provides MediaQueryData to its descendants.
const
MediaQuery.removePadding({Key? key, required BuildContext context, bool removeLeft = false, bool removeTop = false, bool removeRight = false, bool removeBottom = false, required Widget child})
Creates a new MediaQuery that inherits from the ambient MediaQuery from the given context, but removes the specified padding.
MediaQuery.removeViewInsets({Key? key, required BuildContext context, bool removeLeft = false, bool removeTop = false, bool removeRight = false, bool removeBottom = false, required Widget child})
Creates a new MediaQuery that inherits from the ambient MediaQuery from the given context, but removes the specified view insets.
MediaQuery.removeViewPadding({Key? key, required BuildContext context, bool removeLeft = false, bool removeTop = false, bool removeRight = false, bool removeBottom = false, required Widget child})
Creates a new MediaQuery that inherits from the ambient MediaQuery from the given context, but removes the specified view padding.

Properties

child Widget
The widget below this widget in the tree.
finalinherited
data MediaQueryData
Contains information about the current media.
final
hashCode int
The hash code for this object.
no setterinherited
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

createElement() InheritedModelElement<_MediaQueryAspect>
Inflates this configuration to a concrete instance.
inherited
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
override
isSupportedAspect(Object aspect) bool
Returns true if this model supports the given aspect.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited
updateShouldNotify(covariant MediaQuery oldWidget) bool
Whether the framework should notify widgets that inherit from this widget.
override
updateShouldNotifyDependent(covariant MediaQuery oldWidget, Set<Object> dependencies) bool
Return true if the changes between this model and oldWidget match any of the dependencies.
override

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Methods

accessibleNavigationOf(BuildContext context) bool
Returns MediaQueryData.accessibleNavigation for the nearest MediaQuery ancestor or throws an exception, if no such ancestor exists.
alwaysUse24HourFormatOf(BuildContext context) bool
Returns MediaQueryData.alwaysUse24HourFormat for the nearest MediaQuery ancestor or throws an exception, if no such ancestor exists.
boldTextOf(BuildContext context) bool
Returns the MediaQueryData.boldText accessibility setting for the nearest MediaQuery ancestor or false, if no such ancestor exists.
devicePixelRatioOf(BuildContext context) double
Returns MediaQueryData.devicePixelRatio for the nearest MediaQuery ancestor or throws an exception, if no such ancestor exists.
disableAnimationsOf(BuildContext context) bool
Returns MediaQueryData.disableAnimations for the nearest MediaQuery ancestor or false, if no such ancestor exists.
displayFeaturesOf(BuildContext context) List<DisplayFeature>
Returns MediaQueryData.displayFeatures for the nearest MediaQuery ancestor or throws an exception, if no such ancestor exists.
fromView({Key? key, required FlutterView view, required Widget child}) Widget
Wraps the child in a MediaQuery which is built using data from the provided view.
fromWindow({Key? key, required Widget child}) Widget
Deprecated. Use MediaQuery.fromView instead.
gestureSettingsOf(BuildContext context) DeviceGestureSettings
Returns MediaQueryData.gestureSettings for the nearest MediaQuery ancestor or throws an exception, if no such ancestor exists.
highContrastOf(BuildContext context) bool
Returns MediaQueryData.highContrast for the nearest MediaQuery ancestor or false, if no such ancestor exists.
invertColorsOf(BuildContext context) bool
Returns MediaQueryData.invertColors for the nearest MediaQuery ancestor or throws an exception, if no such ancestor exists.
maybeAccessibleNavigationOf(BuildContext context) bool?
Returns MediaQueryData.accessibleNavigation for the nearest MediaQuery ancestor or null, if no such ancestor exists.
maybeAlwaysUse24HourFormatOf(BuildContext context) bool?
Returns MediaQueryData.alwaysUse24HourFormat for the nearest MediaQuery ancestor or null, if no such ancestor exists.
maybeBoldTextOf(BuildContext context) bool?
Returns the MediaQueryData.boldText accessibility setting for the nearest MediaQuery ancestor or null, if no such ancestor exists.
maybeDevicePixelRatioOf(BuildContext context) double?
Returns MediaQueryData.devicePixelRatio for the nearest MediaQuery ancestor or null, if no such ancestor exists.
maybeDisableAnimationsOf(BuildContext context) bool?
Returns MediaQueryData.disableAnimations for the nearest MediaQuery ancestor or null, if no such ancestor exists.
maybeDisplayFeaturesOf(BuildContext context) List<DisplayFeature>?
Returns MediaQueryData.displayFeatures for the nearest MediaQuery ancestor or null, if no such ancestor exists.
maybeGestureSettingsOf(BuildContext context) DeviceGestureSettings?
Returns MediaQueryData.gestureSettings for the nearest MediaQuery ancestor or null, if no such ancestor exists.
maybeHighContrastOf(BuildContext context) bool?
Returns MediaQueryData.highContrast for the nearest MediaQuery ancestor or null, if no such ancestor exists.
maybeInvertColorsOf(BuildContext context) bool?
Returns MediaQueryData.invertColors for the nearest MediaQuery ancestor or null, if no such ancestor exists.
maybeNavigationModeOf(BuildContext context) NavigationMode?
Returns MediaQueryData.navigationMode for the nearest MediaQuery ancestor or null, if no such ancestor exists.
maybeOf(BuildContext context) MediaQueryData?
The data from the closest instance of this class that encloses the given context, if any.
maybeOnOffSwitchLabelsOf(BuildContext context) bool?
Returns MediaQueryData.onOffSwitchLabels for the nearest MediaQuery ancestor or null, if no such ancestor exists.
maybeOrientationOf(BuildContext context) Orientation?
Returns MediaQueryData.orientation for the nearest MediaQuery ancestor or null, if no such ancestor exists.
maybePaddingOf(BuildContext context) EdgeInsets?
Returns MediaQueryData.padding for the nearest MediaQuery ancestor or null, if no such ancestor exists.
maybePlatformBrightnessOf(BuildContext context) Brightness?
Returns MediaQueryData.platformBrightness for the nearest MediaQuery ancestor or null, if no such ancestor exists.
maybeSizeOf(BuildContext context) Size?
Returns MediaQueryData.size from the nearest MediaQuery ancestor or null, if no such ancestor exists.
maybeSupportsShowingSystemContextMenu(BuildContext context) bool?
Returns MediaQueryData.supportsShowingSystemContextMenu for the nearest MediaQuery ancestor or null, if no such ancestor exists.
maybeSystemGestureInsetsOf(BuildContext context) EdgeInsets?
Returns MediaQueryData.systemGestureInsets for the nearest MediaQuery ancestor or null, if no such ancestor exists.
maybeTextScaleFactorOf(BuildContext context) double?
Deprecated. Will be removed in a future version of Flutter. Use maybeTextScalerOf instead.
maybeTextScalerOf(BuildContext context) TextScaler?
Returns the MediaQueryData.textScaler for the nearest MediaQuery ancestor or null if no such ancestor exists.
maybeViewInsetsOf(BuildContext context) EdgeInsets?
Returns MediaQueryData.viewInsets for the nearest MediaQuery ancestor or null, if no such ancestor exists.
maybeViewPaddingOf(BuildContext context) EdgeInsets?
Returns MediaQueryData.viewPadding for the nearest MediaQuery ancestor or null, if no such ancestor exists.
Returns MediaQueryData.navigationMode for the nearest MediaQuery ancestor or throws an exception, if no such ancestor exists.
of(BuildContext context) MediaQueryData
The data from the closest instance of this class that encloses the given context.
onOffSwitchLabelsOf(BuildContext context) bool
Returns MediaQueryData.onOffSwitchLabels for the nearest MediaQuery ancestor or false, if no such ancestor exists.
orientationOf(BuildContext context) Orientation
Returns MediaQueryData.orientation for the nearest MediaQuery ancestor or throws an exception, if no such ancestor exists.
paddingOf(BuildContext context) EdgeInsets
Returns MediaQueryData.padding for the nearest MediaQuery ancestor or throws an exception, if no such ancestor exists.
platformBrightnessOf(BuildContext context) Brightness
Returns MediaQueryData.platformBrightness for the nearest MediaQuery ancestor or Brightness.light, if no such ancestor exists.
sizeOf(BuildContext context) Size
Returns MediaQueryData.size from the nearest MediaQuery ancestor or throws an exception, if no such ancestor exists.
supportsShowingSystemContextMenu(BuildContext context) bool
Returns MediaQueryData.supportsShowingSystemContextMenu for the nearest MediaQuery ancestor or throws an exception, if no such ancestor exists.
systemGestureInsetsOf(BuildContext context) EdgeInsets
Returns MediaQueryData.systemGestureInsets for the nearest MediaQuery ancestor or throws an exception, if no such ancestor exists.
textScaleFactorOf(BuildContext context) double
Deprecated. Will be removed in a future version of Flutter. Use maybeTextScalerOf instead.
textScalerOf(BuildContext context) TextScaler
Returns the MediaQueryData.textScaler for the nearest MediaQuery ancestor or TextScaler.noScaling if no such ancestor exists.
viewInsetsOf(BuildContext context) EdgeInsets
Returns MediaQueryData.viewInsets for the nearest MediaQuery ancestor or throws an exception, if no such ancestor exists.
viewPaddingOf(BuildContext context) EdgeInsets
Returns MediaQueryData.viewPadding for the nearest MediaQuery ancestor or throws an exception, if no such ancestor exists.
withClampedTextScaling({Key? key, double minScaleFactor = 0.0, double maxScaleFactor = double.infinity, required Widget child}) Widget
Wraps the child in a MediaQuery and applies TextScaler.clamp on the current MediaQueryData.textScaler.
withNoTextScaling({Key? key, required Widget child}) Widget
Wraps the child in a MediaQuery with its MediaQueryData.textScaler set to TextScaler.noScaling.