我想创建一个小部件列表 MyWidget(categoryName, color)
从以下两个列表中。
static const _categoryNames = <String>[
'Length',
'Area',
'Volume',
];
static const _baseColors = <Color>[
Colors.teal,
Colors.orange,
Colors.pinkAccent,
];
在 Python 中,我会使用带有 zip 的列表理解来获得结果。
my_widget_list = [MyWidget(categoryName, baseColor) for categoryName, baseColor in zip(_categoryNames, _baseColors)]
谷歌搜索 Dart 的类似方法没有提供任何令人满意的解决方案。
最佳答案
如果您的目标是创建一个小部件列表(假设您的两个列表将具有相同数量的元素)。你可以试试
List<Widget> getWidgets() {
List<Widget> my_widget_list = [];
const _categoryNames = <String>[
'Length',
'Area',
'Volume',
];
const _baseColors = <Color>[
Colors.teal,
Colors.orange,
Colors.pinkAccent,
];
for (int i = 0; i <= _categoryNames.length -1 ; i++){
my_widget_list.add(MyWidget(_categoryNames[i],_baseColors[i]));
}
return my_widget_list;
}
Widget MyWidget(String categoryName, Color baseColor){
return Container(
color: baseColor,
child: Text(categoryName,));
}
关于python - Dart 相当于 Python zip 和列表理解,用于从两个列表生成小部件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62234207/