Выравнивание по поперечной оси в Flutter
Поперечная ось перпендикулярна главной: у
Column
это горизонталь, у Row -
вертикаль. Параметр
crossAxisAlignment
определяет, как потомки выстраиваются вдоль неё,
когда ширина или высота ряда больше, чем нужно
содержимому.
Значение CrossAxisAlignment.start
прижимает потомков
к началу поперечной оси (слева в колонке,
к верху в ряду). Значение
CrossAxisAlignment.center
центрирует их. Узкий текст в широкой колонке
окажется по центру или с краю в зависимости
от значения:
SizedBox(
width: 200,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: const [
Text('Short'),
Text('Long label'),
],
),
)
Отдельный режим - CrossAxisAlignment.stretch.
Он заставляет каждого потомка растянуться на
всю ширину колонки или всю высоту ряда в
пределах поперечной оси. Полезно, когда нужны
кнопки или плашки на всю ширину экрана внутри
Column:
Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
ElevatedButton(
onPressed: () {},
child: const Text('Full width'),
),
ElevatedButton(
onPressed: () {},
child: const Text('This one too'),
),
],
)
Соберите Column на всю ширину
body так:
Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
ElevatedButton(
onPressed: () {},
child: Text('One'),
),
ElevatedButton(
onPressed: () {},
child: Text('Two'),
),
],
)
Обе кнопки доходят до левого и правого
края body.