如何遍历具有不同视图的小部件

时间:2019-10-08 11:46:32

标签: flutter widget flutter-sliver

是个扑朔迷离的初学者。我有四个具有不同视图的小部件,即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(),
                )
                );

1 个答案:

答案 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(),
  );