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

Метод separated

Метод separated виджета ListView конструктор ListView.separated создаёт ListView, где между строками всегда есть виджет из separatorBuilder. Пункты собирает itemBuilder, их число задают в itemCount.

Синтаксис

ListView.separated( itemCount: 5, itemBuilder: (context, index) => Text('abcde'), separatorBuilder: (context, index) => Divider(), )

Параметры

Параметр Описание
itemBuilder Функция, которая строит пункт по индексу. Обязательный параметр.
separatorBuilder Функция, которая строит разделитель между пунктами. Обязательный параметр.
itemCount Сколько всего пунктов. Если не задан, список бесконечный.
controller ScrollController для программной прокрутки.

Пример

Давайте выведем список с линией между строками:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: ListView.separated( itemCount: 8, itemBuilder: (BuildContext context, int index) { return ListTile(title: Text('abcde')); }, separatorBuilder: (BuildContext context, int index) { return const Divider(height: 1); }, ), ), ), ); }

На экране между одинаковыми подписями будут тонкие разделители.

Пример

Давайте сделаем разделитель с отступом:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: ListView.separated( itemCount: 4, itemBuilder: (BuildContext context, int index) { return ListTile(title: Text('12345')); }, separatorBuilder: (BuildContext context, int index) { return const SizedBox(height: 12); }, ), ), ), ); }

На экране пункты разойдутся по вертикали за счёт пустого зазора.

Смотрите также

  • метод builder,
    который часто ставят рядом в прокручиваемых экранах
  • метод custom,
    который дополняет работу с прокруткой
  • виджет ListView,
    который помогает собрать сложный список
  • виджет GridView,
    который задаёт поведение или данные прокрутки
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить