Метод of
Метод of виджета
MediaQuery он принимает context и возвращает
MediaQueryData.
Без предка Flutter выбросит ошибку.
Для безопасного поиска есть
maybeOf.
Синтаксис
MediaQuery.of(context)
Параметры
| Параметр | Описание |
|---|---|
context |
BuildContext виджета, от которого ищут MediaQuery вверх по дереву.
|
Пример
Давайте прочитаем высоту экрана:
import 'package:flutter/material.dart';
class HeightProbe extends StatelessWidget
{
const HeightProbe({super.key});
@override
Widget build(BuildContext context)
{
var res = MediaQuery.of(context).size.height;
return Text('$res');
}
}
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: HeightProbe(),
),
),
),
);
}
На экране по центру появится число - высота области рисования.
Пример
Давайте сравним padding и viewInsets:
import 'package:flutter/material.dart';
class InsetsProbe extends StatelessWidget
{
const InsetsProbe({super.key});
@override
Widget build(BuildContext context)
{
var data = MediaQuery.of(context);
var res = data.viewInsets.bottom - data.padding.bottom;
return Text('$res');
}
}
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: InsetsProbe(),
),
),
),
);
}
На экране будет число: насколько нижняя клавиатура сильнее обычного нижнего отступа.
Смотрите также
-
метод
maybeOf,
который возвращает null безMediaQuery -
метод
sizeOf,
который сразу возвращаетSize -
класс
MediaQueryData,
который описывает поля, доступные черезof -
виджет
MediaQuery,
который кладёт данные в дерево