Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗flPmLsSp 51 of 125 menu
◀ ▶

ListView.separated в Flutter

Между пунктами списка часто нужна линия или отступ. Вручную вставлять Divider между каждыми двумя ListTile неудобно. Конструктор ListView.separated у ListView принимает два построителя: строку и разделитель.

Число строк задаёт itemCount. Элемент по индексу строит itemBuilder, виджет между соседними строками - separatorBuilder. Индекс в нём - это строка выше разделителя. Разделитель вызывают на один раз меньше, чем строк, но про это заботится сам ListView:

import 'package:flutter/material.dart'; void main() { runApp(const MaterialApp(home: HomePage())); } class HomePage extends StatelessWidget { const HomePage({super.key}); static const names = ['Anna', 'Boris', 'Vera', 'Gleb']; @override Widget build(BuildContext context) { return Scaffold( body: ListView.separated( itemCount: names.length, itemBuilder: (context, index) { return ListTile(title: Text(names[index])); }, separatorBuilder: (context, index) { return const Divider(height: 1); }, ), ); } }

Постройте список так:

const months = [ 'January', 'February', 'March', 'April', 'May', ]; ListView.separated( itemCount: months.length, itemBuilder: (context, index) { return ListTile(title: Text(months[index])); }, separatorBuilder: (context, index) { return const Divider(height: 1); }, )
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить