Вы можете создать собственный виджет listViewItem с сохранением состояния и построить просмотр списка, используя ListViewBuilder.
Widget build(BuildContext context) {
return YourWidget();
}
В вашем просмотре списка:
Widget buildListView() {
ListView.builder(
controller: _controller,
itemCount: _itemCount,
itemBuilder: (BuildContext context, int index) {
return YourWidget(item: items[index]);
}
}