ListView.builder в Flutter
Если заранее создать сотни виджетов в
children, приложение потратит память
и время на то, что пользователь может
так и не увидеть. Конструктор
ListView.builder
у ListView
создаёт строку только когда она попадает
на экран или рядом с ним.
Передают itemCount - сколько элементов
в данных - и itemBuilder: функцию
(context, index) => ..., которая
по номеру строки возвращает виджет.
Индекс идёт от нуля до itemCount - 1:
import 'package:flutter/material.dart';
void main() {
runApp(const MaterialApp(home: HomePage()));
}
class HomePage extends StatelessWidget {
const HomePage({super.key});
static const rowCount = 50;
@override
Widget build(BuildContext context) {
return Scaffold(
body: ListView.builder(
itemCount: rowCount,
itemBuilder: (context, index) {
return ListTile(
title: Text('Row ${index + 1}'),
);
},
),
);
}
}
Соберите ListView.builder на
30 строк. В заголовке каждой
ListTile выведите текст
'Item ' и номер строки,
начиная с 1.