Во Flutter получение доступной высоты экрана является общим требованием для создания адаптивных макетов. Понимая различные методы получения доступной высоты, разработчики могут создавать динамичные и адаптируемые пользовательские интерфейсы. В этой статье мы рассмотрим несколько подходов к получению доступной высоты в приложении Flutter, а также приведем примеры кода.
Метод 1: MediaQuery
Класс MediaQueryпредоставляет информацию об экране текущего устройства и позволяет нам получить доступ к его свойствам. Чтобы получить доступную высоту, мы можем использовать свойство MediaQuery.of(context).size.height. Вот пример:
double screenHeight = MediaQuery.of(context).size.height;
Метод 2: LayoutBuilder
Виджет LayoutBuilderпредлагает способ получения информации об ограничениях его родительского виджета. Используя параметр BoxConstraints, мы можем получить доступ к доступной высоте. Вот пример:
LayoutBuilder(
builder: (BuildContext context, BoxConstraints constraints) {
double availableHeight = constraints.maxHeight;
// Use availableHeight in your layout
return Container();
},
);
Метод 3: Пакет ScreenUtil
Пакет ScreenUtilпредоставляет набор утилит, помогающих адаптировать экран во Flutter. Он предлагает простой способ получить доступную высоту с помощью свойства ScreenUtil().screenHeight. Обязательно установите и импортируйте пакет перед его использованием. Вот пример:
import 'package:flutter_screenutil/flutter_screenutil.dart';
double screenHeight = ScreenUtil().screenHeight;
Метод 4: OrientationBuilder
Виджет OrientationBuilderпозволяет нам создавать различные макеты в зависимости от ориентации устройства. Используя этот виджет, мы можем получить доступ к доступной высоте как в книжной, так и в альбомной ориентации. Вот пример:
OrientationBuilder(
builder: (BuildContext context, Orientation orientation) {
double availableHeight = orientation == Orientation.portrait
? MediaQuery.of(context).size.height
: MediaQuery.of(context).size.width;
// Use availableHeight in your layout
return Container();
},
);
В этой статье мы рассмотрели несколько методов получения доступной высоты в приложении Flutter. Мы узнали, как использовать класс MediaQuery, виджет LayoutBuilder, пакет ScreenUtilи виджет OrientationBuilderдля доступа к доступным высота. Используя эти методы, разработчики могут создавать адаптивные макеты, которые динамически адаптируются к различным размерам и ориентациям экрана.