Список из данных в Flutter
На экране часто показывают однотипные строки:
названия, подписи, пункты меню. Данные
удобно держать в списке Dart, а виджеты
собирать прямо в параметре children
у Column.
Приём тот же, что в
цикле for в литерале списка,
только элементами становятся виджеты.
Каждая запись может быть простой строкой,
записью (название, автор) или
объектом с полями. Сама Column не
прокручивается: длинный список уйдёт
за край, позже его возьмём в
ListView.
Главное - пройти по списку и для каждого
элемента вернуть, например,
Text:
import 'package:flutter/material.dart';
void main() {
runApp(const MaterialApp(home: HomePage()));
}
class HomePage extends StatelessWidget {
const HomePage({super.key});
static const books = [
('War and Peace', 'Tolstoy'),
('The Master and Margarita', 'Bulgakov'),
('Crime and Punishment', 'Dostoevsky'),
];
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
for (final book in books)
Padding(
padding: const EdgeInsets.all(8),
child: Text('${book.$1} - ${book.$2}'),
),
],
),
);
}
}
В body
Scaffold
выведите города так:
const cities = ['Riga', 'Tallinn', 'Vilnius'];
Column(
children: [
for (final city in cities)
Padding(
padding: EdgeInsets.all(8),
child: Text(city),
),
],
)