Создание динамических c виджетов во Флаттере - PullRequest
0 голосов
/ 26 февраля 2020

Не могли бы вы помочь с тем, как мы можем создать динамический список c виджетов вместо создания карточек (контейнеров или виджетов), например, один за другим вручную? Используя ListView.build или другие методы? Какой самый лучший способ?

Я провел день, пытаясь и исследуя. Вместо того чтобы добавлять 3 карты (или другие объекты с несколькими свойствами), я пытаюсь создать метод или функцию, которая будет строить каждую карту (объект) на основе списка (и длины), а затем вставлять все карты, созданные автоматически в [].

Я пытался добиться этого, но когда я добавляю его в [], возникают некоторые проблемы, возможно, из-за неправильных типов или, возможно, я делаю что-то ужасно неправильное? И не уверен, что это лучший (если вообще правильный) способ сделать это?

List entries = ['one', 'two', 'three3'];

Widget buildListView() {
  return ListView.builder(
      padding: EdgeInsets.all(8),
      itemCount: entries.length,
      itemBuilder: (BuildContext context, int index) {
        return new Container(
          height: 50,
          color: Colors.lightBlue,
          child: Center(child: Text('Entry ${entries[index]}')),
        );
      });
}

1 Ответ

0 голосов
/ 26 февраля 2020

Здесь вы go.

 ///construct the list of dynamic widgets as per your requirement.
 final listWidgets = [Text("one"), Text("two"), Text("three")];


 ///pass the widgets to the listview builder.
 return ListView.builder(
    padding: EdgeInsets.all(8),
    itemCount: listWidgets.length,
    itemBuilder: (BuildContext context, int index) {
      return new Container(
        height: 50,
        color: Colors.lightBlue,
        child: listWidgets[index],
      );
    });
    });
...