是个扑朔迷离的初学者。我有四个具有不同视图的小部件,即BarChart, LineChart, StackedBarChart and CircularChart
。然后我创建了一个列表
final List<Widget> widgetList = <Widget>[
BarChartWidget(), LineChartWidget(), StackedBarChartWidget(), CircularChartWidget(),];
如何在ListView中迭代此小部件的列表
body: new ListView.separated(
itemCount: entries.length,
padding: EdgeInsets.all(8.0),
itemBuilder: (BuildContext context, int index) {
return Container(
height: 150,
color: Colors.amber[colorCodes[index]],
child: new widgetList[index],
);
},
separatorBuilder: (BuildContext context, int index) => const Divider(),
)
);
答案 0 :(得分:1)
您快到了。问题是:
child: new widgetList[index],
这不是有效的语法。您不能“新建” widgetList
,因为它是一个变量。
只需:
child: widgetList[index],
这是最终的语法:
new ListView.separated(
itemCount: entries.length,
padding: EdgeInsets.all(8.0),
itemBuilder: (BuildContext context, int index) {
return Container(
height: 150,
color: Colors.amber[colorCodes[index]],
child: widgetList[index],
);
},
separatorBuilder: (BuildContext context, int index) => const Divider(),
);