Помогает заполнить строки и столбцы

Если вы еще не видели видео "Виджет недели" о расширении, посмотрите его в первую очередь.
В этой статье я напишу код и примеры, которые вы видели в видео. Поиграв с ними самостоятельно, вы научитесь еще лучше использовать этот очень полезный виджет.
Основы
Если у вас есть несколько виджетов в строке или столбце, вы можете обнять детей так:
Row(
children: [
MyWidget(),
MyWidget(),
MyWidget(),
],
),

Или пусть расслабятся:
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
MyWidget(),
MyWidget(),
MyWidget(),
],
),

Если вы хотите, чтобы один из виджетов расширился, чтобы заполнить дополнительное пространство в строке или столбце, вы можете обернуть его расширенным виджетом:
Row(
children: [
MyWidget(),
Expanded(
child: MyWidget(),
),
MyWidget(),
],
),

Если у вас есть пара виджетов, которым вы хотите разделить дополнительное пространство (но не поровну), вы можете установить коэффициент flex:
children: [
MyWidget(),
Expanded(
flex: 2,
child: MyWidget(),
),
MyWidget(),
Expanded(
flex: 1,
child: MyWidget(),
),
],
),
Первый и третий виджеты имеют фиксированный размер. Второй и четвертый виджеты в строке разделяют дополнительное пространство, потому что они заключены в Expanded. Однако, поскольку используются коэффициенты flex, второй виджет получает в два раза большую ширину, чем четвертый.

Углубляясь
Вот несколько моментов, о которых следует помнить:
- Extended должен быть потомком виджета Flex. В противном случае ваше приложение выйдет из строя. Строка и столбец - это расширенные виджеты Flex, поэтому они учитываются.
- Расширенный виджет - это то же самое, что и гибкий виджет с
fit, установленным наFlexFit.tight. Это означает, что размер строго ограничен. То есть он должен заполнить доступное пространство. Использование гибкости сFlexFit.looseпозволит детям выбирать свой размер.
Полный код
Если вы хотите поиграть с кодом самостоятельно, вот он: