Flutter ListView с виджетами в списке не обновляется, когда он должен - PullRequest
0 голосов
/ 18 апреля 2020

Я пытаюсь сохранить виджеты для создания с помощью ListView в глобальном списке, например:

List<Widget> globalList= [];

Я пытаюсь построить Listview в состоянии класса с состоянием, подобного этому:

ListView(
  children: globalList
)

Теперь я пытаюсь визуализировать этот ListView каждый раз, когда элемент добавляется в список. Для этого я использую следующую функцию:

void addList(){
    setState((){
      Widget _widget = new Widget();
      list.add(_widget);
    });

Виджет (в моем псевдокоде _widget) также является виджетом с сохранением состояния. Но когда я звоню addList, мой виджет с сохранением состояния не обновляется. Почему?

Сокращенный (псевдо) -Код:

List<Widget> globalList = [];

class STFUL extends StatefulWidget{

  @override
  _STFULState createState() => _STFULState();
}

class _STFULState extends State<STFUL>{
  void addList(){
    setState((){
      Widget _widget = new Widget();
      globalList.add(_widget);
      });
@override
Widget build(BuildContext context) {
  return Scaffold(
    body:ListView(
      children: globalList
    )
  }  
} 

Ниже есть кнопка для вызова addList. Моя проблема в том, что ListView не отображает обновленный список, когда я вызываю setState.

Спасибо за вашу помощь

1 Ответ

0 голосов
/ 18 апреля 2020

используйте ListView.Builder вместо ваших ListView,

...