Выбор ответа Junior Вёрстка и constraints обновлено
Flutter: почему Container(width: 100) на весь экран
Вопрос
Почему Container(width: 100, height: 100, color: Colors.red) прямо в runApp занимает весь экран?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Корень получает жёсткие ограничения размером с экран, и ребёнок им подчиняется. Корневой виджет получает ограничения «ровно размер экрана»: min и max совпадают.
Варианты ответа
- Корень получает жёсткие ограничения размером с экран, и ребёнок им подчиняетсяправильный ответ
- У
Containerбезchildзаданная ширина игнорируется, и он растягивается на родителя - Это известный баг Flutter, поэтому размеры всегда нужно задавать через
constraints Colors.redвContainerвключает декорацию, которая растягивает его на весь родитель
Разбор
Корневой виджет получает ограничения «ровно размер экрана»: min и max совпадают. Внутри таких ограничений 100 x 100 невозможно, и контейнер становится размером с экран. Если обернуть его в Center, тот ослабит ограничения (loose), и квадрат станет 100 x 100. Это не баг и не особенность цвета.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.