@camren
Для обновления состояния ListView.builder()
в Flutter вам необходимо использовать StatefulWidget
и хранить список элементов, которые вы отображаете, в состоянии. Когда вы хотите обновить список элементов, вы должны вызвать setState((){})
, чтобы уведомить фреймворк о том, что состояние изменилось.
Например, предположим, что у вас есть список элементов, которые вы хотите отобразить с помощью ListView.builder()
, и вы хотите добавить новый элемент в список при нажатии на кнопку. Вот как это можно сделать:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
class MyListView extends StatefulWidget { @override _MyListViewState createState() => _MyListViewState(); } class _MyListViewState extends State<MyListView> { List<String> _items = ['Item 1', 'Item 2', 'Item 3']; @override Widget build(BuildContext context) { return Column( children: [ Expanded( child: ListView.builder( itemCount: _items.length, itemBuilder: (BuildContext context, int index) { return ListTile( title: Text(_items[index]), ); }, ), ), ElevatedButton( onPressed: () { setState(() { _items.add('New Item'); }); }, child: Text('Add Item'), ), ], ); } } |
Здесь _items
является списком элементов, которые вы хотите отобразить в ListView.builder()
. Кнопка "Add Item" добавляет новый элемент в список и вызывает setState((){})
, чтобы обновить виджет и отобразить новый элемент в списке.