Виджет 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,
который собирает список из слайверов