Flutter 如何使用列表小部件在 for 循环内部执行?

lgn*_*Pie 5 android-widget flutter flutter-sliver flutter-layout

我需要在小部件内部进行 for 循环。我创建了两个小部件,并从另一个小部件中调用它。它说“不在 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;
}
Run Code Online (Sandbox Code Playgroud)

我需要的是,动态地用于内部 for 循环,它将创建列表图块列表。

Fel*_*lta 17

借助 Dart 2.3 的新功能,您可以在集合中使用 for 来最小化样板代码并使其更清晰。

在 Dart 2.3 之前

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

使用飞镖 2.3

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

在此处查看可以帮助您的更多功能:Dart 2.3 中的新功能

PS:将您的函数名称更改为驼峰格式。这样,您应该创建一个类而不是方法

  • 更喜欢代码片段而不是图片。我们可以轻松地复制/编辑图片,这对于视力不好的人来说是不利的。 (2认同)