我必须创建一个返回小部件数组的函数,如下所示:
new GridView.count(crossAxisCount: _column,children: getRandomWidgetArray(),
示例函数如下: -
Widget[] getRandomWidgetArray()
{
Widget[] gameCells;
for(i=0;i<5;i++)
{
gameCells.add(new MyCellWidget(i));
}
return gameCells;
}
以上代码给出了此错误: -
我知道如何在没有功能的情况下这样做:
children: < Widget >[ new MyCellWidget(0),
new MyCellWidget(1),]
但是我必须使它具有动态功能,因为将来值会发生变化,上面的代码只是原型。
颤动的例子非常少。有人可以帮帮我吗。
提前谢谢!
答案 0 :(得分:9)
Dart中的数组类型为List<Type>
:
List<Widget> getRandomWidgetArray()
[]
只能用作文字值来创建新的列表值,而不能用于类型声明。
答案 1 :(得分:1)
List<Widget> getRandomWidgetArray(){
List <Widget> gameCells = List<Widget>();
for(i=0;i<5;i++)
{
gameCells.add(new MyCellWidget(i));
}
return gameCells;
}
这是初始化List,添加元素并返回Widget列表的正确方法。
答案 2 :(得分:1)
此时不推荐使用以下代码:
List <Widget> gameCells = List<Widget>();
改用以下内容:
List <Widget> gameCells = <Widget>[];
第一个代码无论如何都可以工作,但您会收到警告。