Как обновить состояние listview.builder() в flutter?

Пользователь

от camren , в категории: Другие , год назад

Как обновить состояние listview.builder() в flutter?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от evalyn.barrows , год назад

@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((){}), чтобы обновить виджет и отобразить новый элемент в списке.