Метод builder
Метод builder виджета ListView конструктор ListView.builder создаёт ListView, который не держит все пункты сразу. Функция itemBuilder получает контекст и индекс и возвращает виджет строки. Число пунктов задают в itemCount.
Синтаксис
ListView.builder(
itemCount: 10,
itemBuilder: (context, index) {
return Text('abcde');
},
)
Параметры
| Параметр | Описание |
|---|---|
itemBuilder |
Функция, которая строит пункт по индексу. Обязательный параметр. |
itemCount |
Сколько всего пунктов. Если не задан, список бесконечный. |
controller |
ScrollController
для программной прокрутки.
|
physics |
Физика жеста. Принимает
ScrollPhysics.
|
Пример
Давайте выведем десять одинаковых подписей:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: ListView.builder(
itemCount: 10,
itemBuilder: (BuildContext context, int index)
{
return ListTile(title: Text('abcde'));
},
),
),
),
);
}
На экране видны первые пункты, при прокрутке builder создаст следующие.
Пример
Давайте покажем номер пункта в тексте:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: ListView.builder(
itemCount: 5,
itemBuilder: (BuildContext context, int index)
{
return ListTile(title: Text('12345 $index'));
},
),
),
),
);
}
На экране у каждой строки свой индекс от 0 до 4.
Смотрите также
-
метод
separated,
который вставляет разделитель между пунктами -
виджет
ListView,
к которому относитсяbuilder -
виджет
builderуSliverList,
который делает то же вCustomScrollView -
виджет
builderуGridView,
который строит ячейки сетки по индексу