ListView.builder лениво создаёт children по индексу — обязательно для длинных списков; обычный ListView(children: [...]) строит всё сразу.
Разбор
itemExtent/prototypeItem помогают layout.
- Keys для stateful item.
- Разделение separator.
- Nested scroll — PrimaryScrollController / CustomScrollView.
Пример
ListView.builder(
itemCount: items.length,
itemBuilder: (_, i) => ListTile(title: Text(items[i])),
);
Итог
Длинные списки — только builder/slivers, не гигантский children list.