Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
69 of 1024 menu
◀ ▶

Класс BoxConstraints

Класс BoxConstraints описывает, в каких пределах может быть размер. Четыре числа: minWidth, maxWidth, minHeight, maxHeight. Их передают в ConstrainedBox и получают от родителя при раскладке.

Синтаксис

BoxConstraints(...)

Параметры

Параметр Описание
minWidth Минимальная ширина, которую родитель разрешает дочернему виджету.
maxWidth Максимальная ширина, которую родитель разрешает дочернему виджету.
minHeight Минимальная высота, которую родитель разрешает дочернему виджету.
maxHeight Максимальная высота, которую родитель разрешает дочернему виджету.

Методы

Метод Описание
constrain Возвращает Size, обрезанный текущими min и max по ширине и высоте.
constrainHeight Возвращает высоту, обрезанную между minHeight и maxHeight.
constrainWidth Возвращает ширину, обрезанную между minWidth и maxWidth.
copyWith Возвращает новые BoxConstraints с подменёнными minWidth, maxWidth, minHeight или maxHeight.
deflate Уменьшает min и max на отступы edges, как при внутреннем padding.
expand Возвращает BoxConstraints с бесконечными maxWidth и maxHeight.
inflate Увеличивает min и max на delta по обеим осям.
lerp Интерполирует между двумя BoxConstraints по доле t от 0 до 1.
loose Возвращает ограничения с minWidth и minHeight, равными нулю.
loosen Ослабляет ограничения, обнуляя минимальные ширину и высоту.
tight Задаёт min и max равными указанным width и height.
tightFor Возвращает tight-ограничения для конечных width и height, если они заданы.
tightForFinite Как tightFor, но только для конечных width и height.
tighten Поднимает minWidth и minHeight до текущих maxWidth и maxHeight.

Пример

Давайте посмотрим BoxConstraints в рабочем примере:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Text('abcde'), ), ), ); }

На экране строка 'abcde'. Сами пределы в этот класс передают виджету, который ограничивает размер.

Пример

Давайте изменим второй пример с BoxConstraints:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Column( children: [ Text('abcde'), Text('12345'), ], ), ), ), ); }

Второй пример тоже показывает строку. Пределы размера по-прежнему задаёт виджет, которому передали BoxConstraints.

Смотрите также

  • виджет Positioned,
    который задаёт координаты в Stack
  • виджет Container,
    который совмещает отступ и оформление
  • виджет Padding,
    который задаёт только отступ
  • виджет Center,
    который центрирует
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить