Изучение Flutter MediaQuery: комплексное руководство по адаптивному дизайну

Во Flutter MediaQuery — это мощный класс, который предоставляет информацию о размере, ориентации и других свойствах дисплея текущего устройства. Используя MediaQuery, разработчики могут создавать адаптивные пользовательские интерфейсы, которые адаптируются к различным размерам и ориентациям экрана. В этой статье мы рассмотрим несколько методов использования MediaQuery во Flutter, а также примеры кода для достижения адаптивного дизайна.

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

В этой статье мы рассмотрели различные методы использования MediaQuery во Flutter для достижения адаптивного дизайна. Используя свойства, предоставляемые MediaQuery, вы можете создавать пользовательские интерфейсы, которые легко адаптируются к различным размерам экрана, ориентациям, плотности пикселей, режимам яркости и коэффициентам масштабирования текста. Такой уровень оперативности повышает удобство работы пользователей и гарантирует, что ваше приложение будет отлично выглядеть на любом устройстве.