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

Виджет ListView

Виджет ListView показывает вертикальный или горизонтальный список дочерних виджетов. Готовый набор передают в children, а длинный список удобнее собирать через builder. Прокруткой управляет ScrollController в controller, поведение жеста - через ScrollPhysics в physics. Параметр shrinkWrap заставляет список занять только высоту содержимого.

Синтаксис

ListView( children: [ Text('abcde'), Text('12345'), ], )

Параметры

Параметр Описание
children Список пунктов для обычного конструктора. Для длинных списков лучше builder.
scrollDirection Ось прокрутки: вертикаль или горизонталь.
controller Контроллер положения прокрутки. Принимает ScrollController.
physics Физика прокрутки. Принимает ScrollPhysics.
shrinkWrap Если true, список не тянется на всю высоту родителя.
padding Отступы вокруг списка. Принимает EdgeInsets.

Методы

Метод Описание
builder Строит пункт по индексу, когда он попадает на экран.
separated Как builder, но между пунктами вставляет разделитель.
custom ListView. Давайте разберём вызов на примерах.

Пример

Давайте выведем короткий список из двух строк:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: ListView( children: [ ListTile(title: Text('abcde')), ListTile(title: Text('12345')), ], ), ), ), ); }

На экране два пункта списка, между ними можно провести пальцем, если пунктов станет больше высоты экрана.

Пример

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

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: ListView.builder( itemCount: 20, itemBuilder: (BuildContext context, int index) { return ListTile(title: Text('abcde $index')); }, ), ), ), ); }

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

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

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