🧩Column
Что такое Column
Column
Column
— это виджет в Flutter, который позволяет размещать другие виджеты вертикально, один под другим. Подумайте о Column
как о стопке книг: каждая книга — это отдельный виджет, и они располагаются друг над другом. Column
помогает организовать элементы в вашем интерфейсе в вертикальном порядке.
Пример использования
В этом примере мы создадим интерфейс с несколькими текстовыми элементами, расположенными друг под другом.

import 'package:flutter/material.dart';
class ColumnExample extends StatelessWidget {
const ColumnExample({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Column Example')),
body: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text('First Item'),
const Text('Second Item'),
const Text('Third Item'),
Container(
color: Colors.red,
height: 200,
width: 200,
child: const Text('Red Container'),
),
const SizedBox(height: 20,),
const TextField(
decoration: InputDecoration(
border: OutlineInputBorder(),
labelText: 'Enter your name',
),
)
],
),
),
);
}
}
Как работает код
Scaffold — это основа для нашего интерфейса, как холст для художника.
AppBar — верхняя панель, где написано название приложения.
Column — используется для вертикального размещения дочерних виджетов.
Text — это текстовые элементы, которые мы хотим показать, и они будут выстраиваться один под другим в колонне.
mainAxisAlignment — устанавливает, как дочерние элементы будут выровнены вдоль главной оси (в нашем случае — вертикально по центру).
Все настройки Column
children
Описание: Список дочерних виджетов, которые будут расположены вертикально.
Пример:
children: [ Text('First Item'), Text('Second Item'), ] // Дочерние элементы, которые будут размещены в колонне
Применение: Позволяет вам указать, какие элементы вы хотите отобразить в колонне.
mainAxisAlignment
Описание: Определяет, как дочерние элементы будут выровнены вдоль главной оси (вертикально).
Пример:
mainAxisAlignment: MainAxisAlignment.center // Элементы будут выровнены по центру
Применение: Позволяет контролировать выравнивание элементов внутри
Column
. Можно использовать различные значения, такие какstart
,end
,spaceBetween
,spaceAround
, и другие.
crossAxisAlignment
Описание: Определяет, как дочерние элементы будут выровнены вдоль поперечной оси (горизонтально).
Пример:
crossAxisAlignment: CrossAxisAlignment.start // Элементы будут выровнены по левому краю
Применение: Используется для управления горизонтальным выравниванием элементов в колонне.
mainAxisSize
Описание: Определяет, насколько большую высоту займет
Column
. Может бытьMainAxisSize.max
(максимальная высота) илиMainAxisSize.min
(минимальная высота).Пример:
mainAxisSize: MainAxisSize.min // Колонна займет только минимально необходимое пространство
Применение: Полезно, когда нужно контролировать размер
Column
в зависимости от его содержимого.
Итог
Column
— это отличный инструмент для организации элементов вертикально в вашем интерфейсе. Если вам нужно расположить виджеты друг под другом, используйте Column
, и он поможет вам легко создать аккуратный и структурированный дизайн.
Last updated