Компоновка виджетов

Сложный экран собирается из простого. Text, Button, Image и Icon — атомы; чтобы расставить их по местам, нужны Row, Column и Stack. Когда элементов становится много и они приходят из данных, в дело идут List и Grid.

Row, Column и Stack

Три виджета, которые задают расположение всего остального.

  • Row — выстраивает потомков в строку, слева направо. Значок с подписью, кнопки в панели инструментов.

  • Column — в столбец, сверху вниз. Списки, секции экрана, поля формы.

  • Stack — слоями друг на друга. Текст поверх картинки, счётчик на значке, кнопка поверх фотографии.

row-col-stack.png :::info Подробно про Row, Column и Stack. :::

Списки и сетки

List и Grid рассчитаны на большие или заранее неизвестные наборы данных.

  • Списки. Column годится для нескольких элементов подряд; ListView рассчитан на неограниченное их число и умеет прокручиваться. Это чат, лента новостей, каталог. Главное его преимущество — ленивая загрузка.
совет
Ленивая загрузка

ListView строит только те элементы, которые сейчас видны на экране, а остальные создаёт по мере прокрутки. На длинном списке это разница между плавной прокруткой и подтормаживающим приложением: память и процессор не тратятся на то, чего никто не видит.

  • Сетки. GridView раскладывает элементы в две колонки и больше. Так показывают фотографии, товары и всё, что удобнее просматривать плитками.
инфо
Списки и сетки

Подробно про списки и сетки и их продвинутые настройки.

перевод официальной документации FlutterFlow

обновлено

⌕ ESC