Flutter 如何使用列表小部件进行内部 for 循环?
Flutter how to do for inside for loop with list widget?
我需要在小部件内部执行 for inside for 循环。我创建了两个小部件,我称它为另一个小部件。它说 "Not in range 0..6, inclusive: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 循环中动态地创建列表块列表。
借助 Dart 2.3 的新功能,您可以在集合中使用 for,以最小化样板代码并使其更易读。
Dart 2.3 之前
Row(
children: <Widget>[
europeanCountries
.map((country) => Text("New $country"))
.toList();
],
)
使用 Dart 2.3
Row(
children: <Widget>[
for (var country in europeanCountries) Text("New ${country.data}")
],
)
在此处查看可以帮助您的更多功能:What's new in Dart 2.3
PS: 将您的函数名称更改为驼峰形式。这样,您应该创建 class 而不是方法
var list = ["one", "two", "three", "four"];
您可以使用文本小部件并排呈现屏幕上的值。我试图使用以下代码来尝试这个
for (var name in list) {
return new Text(name);
}
基本上,当你在一个函数上点击 'return' 时,该函数将停止并且不会继续你的迭代,所以你需要做的是将它全部放在一个列表中,然后将它添加为一个小部件
你可以这样做:
Widget getTextWidgets(List<String> strings)
{
List<Widget> list = List<Widget>();
for(var i = 0; i < strings.length; i++){
list.add(Text(strings[i]));
}
return Row(children: list);
}
甚至更好,您可以使用 .map()
运算符并执行如下操作:
Widget getTextWidgets(List<String> strings)
{
return Row(children: strings.map((item) => Text(item)).toList());
}
我需要在小部件内部执行 for inside for 循环。我创建了两个小部件,我称它为另一个小部件。它说 "Not in range 0..6, inclusive: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 循环中动态地创建列表块列表。
借助 Dart 2.3 的新功能,您可以在集合中使用 for,以最小化样板代码并使其更易读。
Dart 2.3 之前
Row(
children: <Widget>[
europeanCountries
.map((country) => Text("New $country"))
.toList();
],
)
使用 Dart 2.3
Row(
children: <Widget>[
for (var country in europeanCountries) Text("New ${country.data}")
],
)
在此处查看可以帮助您的更多功能:What's new in Dart 2.3
PS: 将您的函数名称更改为驼峰形式。这样,您应该创建 class 而不是方法
var list = ["one", "two", "three", "four"];
您可以使用文本小部件并排呈现屏幕上的值。我试图使用以下代码来尝试这个
for (var name in list) {
return new Text(name);
}
基本上,当你在一个函数上点击 'return' 时,该函数将停止并且不会继续你的迭代,所以你需要做的是将它全部放在一个列表中,然后将它添加为一个小部件
你可以这样做:
Widget getTextWidgets(List<String> strings)
{
List<Widget> list = List<Widget>();
for(var i = 0; i < strings.length; i++){
list.add(Text(strings[i]));
}
return Row(children: list);
}
甚至更好,您可以使用 .map()
运算符并执行如下操作:
Widget getTextWidgets(List<String> strings)
{
return Row(children: strings.map((item) => Text(item)).toList());
}