Во Flutter MediaQuery — это мощный класс, который предоставляет информацию о размере, ориентации и других свойствах дисплея текущего устройства. Используя MediaQuery, разработчики могут создавать адаптивные пользовательские интерфейсы, которые адаптируются к различным размерам и ориентациям экрана. В этой статье мы рассмотрим несколько методов использования MediaQuery во Flutter, а также примеры кода для достижения адаптивного дизайна.
- Получение размера устройства:
Чтобы получить размеры экрана устройства, вы можете использовать свойствоMediaQuery.of(context).size. Вот пример того, как получить ширину и высоту экрана:
Size screenSize = MediaQuery.of(context).size;
double screenWidth = screenSize.width;
double screenHeight = screenSize.height;
- Получение ориентации устройства:
Чтобы определить текущую ориентацию устройства, вы можете использовать свойствоMediaQuery.of(context).orientation. Он возвращает либоOrientation.portrait, либоOrientation.landscape. Вот пример:
Orientation currentOrientation = MediaQuery.of(context).orientation;
if (currentOrientation == Orientation.portrait) {
// Handle portrait orientation
} else {
// Handle landscape orientation
}
- Обработка плотности пикселей устройства.
Flutter предоставляет удобный способ получить плотность пикселей устройства с помощьюMediaQuery.of(context).devicePixelRatio. Это значение представляет собой соотношение физических пикселей к логическим пикселям. Вот пример его использования:
double devicePixelRatio = MediaQuery.of(context).devicePixelRatio;
- Определение яркости платформы.
Вы можете определить текущий режим яркости платформы с помощьюMediaQuery.of(context).platformBrightness. Он возвращает либоBrightness.light, либоBrightness.dark. Вот пример:
Brightness brightness = MediaQuery.of(context).platformBrightness;
if (brightness == Brightness.light) {
// Light mode
} else {
// Dark mode
}
- Доступ к коэффициенту масштабирования текста:
Flutter позволяет получить доступ к коэффициенту масштабирования текста устройства с помощьюMediaQuery.of(context).textScaleFactor. Он представляет собой предпочтительный параметр размера текста пользователя. Вот пример:
double textScaleFactor = MediaQuery.of(context).textScaleFactor;
В этой статье мы рассмотрели различные методы использования MediaQuery во Flutter для достижения адаптивного дизайна. Используя свойства, предоставляемые MediaQuery, вы можете создавать пользовательские интерфейсы, которые легко адаптируются к различным размерам экрана, ориентациям, плотности пикселей, режимам яркости и коэффициентам масштабирования текста. Такой уровень оперативности повышает удобство работы пользователей и гарантирует, что ваше приложение будет отлично выглядеть на любом устройстве.