В Flutter существует огромное количество виджетов для управления размерами. Давайте сделаем быстрый дайджест и пройдемся по некоторым из них. Поехали!
🔴FittedBox
— Автоматически подстраивает дочерний виджет под доступное пространство, сохраняя пропорции.
— Если контент слишком большой, уменьшает его, чтобы всё поместилось.
🔴OverflowBox
— Позволяет дочернему элементу выходить за пределы родительского контейнера.
— Игнорирует ограничения родителя, давая больше свободы.
🔴ConstrainedBox
— Задаёт минимальные или максимальные размеры для дочернего элемента.
— Накладывает ограничения, даже если содержимое больше или меньше заданных параметров.
🔴LimitedBox
— Ограничивает размеры элемента, но только если они не заданы явно.
— Устанавливает максимальный размер, если дочерний элемент не ограничен другими условиями.
🔴AspectRatio
— Сохраняет определённое соотношение сторон (например, 16:9).
– Автоматически подстраивает размеры элемента, сохраняя пропорции.
🔴UnconstrainedBox
— Убирает все ограничения по размеру для дочернего элемента.
— Позволяет дочернему виджету занимать столько места, сколько ему нужно.
🔴IntrinsicWidth / IntrinsicHeight
— Позволяет элементу занимать минимально возможное пространство.
— Вычисляет минимальный размер, необходимый для отображения дочернего элемента.
🔴Flex, Expanded и Flexible
— Адаптивно распределяет пространство в
Row или Column. —
Expanded — заполняет всё доступное пространство. —
Flexible — занимает пространство по возможности, но не жёстко. 🔴Align
— Позволяет расположить элемент внутри родителя (например, по центру или в углу).
— Задает позицию элемента относительно родительского контейнера.
🔴LayoutBuilder
— Динамически определяет доступный размер и позволяет перестроить UI.
— Полезно для адаптации интерфейса под разные размеры экранов.
❗️Важно
Используйте эти виджеты с умом. Некоторые из них могут повлиять на производительность и рендеринг. Тестируйте каждый случай!
💬 Делитесь в комментариях, какие виджеты используете чаще всего. Там же бонусом полезная табличка.
