Флаттер, как это сделать внутри для цикла с виджетом списка? - PullRequest
0 голосов
/ 28 мая 2019

Мне нужно сделать для внутри цикла внутри виджетов.Я создал два виджета, и я назвал его из другого виджета.он говорит: «Не в диапазоне 0..6 включительно: 7»

Код:

List<Widget> ListMyClips(i) {
    List<Widget> list = new List();
    var lengthItems = widget.data["recommended"][7]["blocks"][i]["items"].length;
    for (var c = 0; c <= lengthItems; i++) {
        list.add(
            ClipRRect(
                borderRadius: new BorderRadius.circular(100.0),
                child: Image.network(
                    first[widget.data["recommended"][7]["blocks"][i]["items"][c]
                        ["id"]]["image"]["full"],
                    width: 56,
                ),
            ),
        );
    }

    return list;
}

List <Widget> ListMyWidgets() {
    var lengthBlocks = widget.data["recommended"][7]["blocks"].length;
    List <Widget> list = new List();
    for (var i = 0; i <= lengthBlocks; i++) {
        list.add(ListTile(
            trailing: Icon(FontAwesomeIcons.chevronRight),
            title: Row(
                children: ListMyClips(i),
            ),
        ));
    }
    return list;
}

, что мне нужно, динамически для внутри цикла for, который будет создавать список плиток списка.

1 Ответ

1 голос
/ 28 мая 2019

С новыми функциями Dart 2.3 вы можете использовать для внутри коллекций, чтобы минимизировать стандартный код и сделать его более разборчивым.

Перед стрелкой 2.3

Row(
 children: <Widget>[
   europeanCountries
   .map((country) => Text("New $country"))
   .toList();
  ],
)

С стрелкой 2.3

Row(
 children: <Widget>[
  for (var country in europeanCountries) Text("New ${country.data}")
  ],
)

Проверьте больше функций, которые могут помочь вам вздесь: Что нового в Dart 2.3

PS: Измените имя вашей функции на форму camelCase.Таким образом, вы должны создать класс вместо метода

...