gpt4 book ai didi

dart - Flutter - 将动态生成的元素与硬编码的元素结合起来

转载 作者:IT王子 更新时间:2023-10-29 06:34:08 26 4
gpt4 key购买 nike

我基本上是在创建一个动态生成网格的游戏。它创建图 block ,将它们添加到列表中并将该列表用作 children 参数的参数。然而,我发现困难的是将它与固定小部件结合起来。

最重要的是,我想要一个文本元素。我现在遇到的问题是,如果我像这样分配动态生成的内容:

...
children: mycontent,
...

然后我就没有地方放我的硬编码小部件了。我希望你明白我的意思。到目前为止,我已经通过创建一个大列表并复制动态生成的元素,然后添加我的硬编码小部件来解决这个问题:

    Widget buildTile(int counter) {
return new GestureDetector(
onTap: (){
setState((){
toggleColor(counter);
});
},
child: new Container(
color: colors[counter],
foregroundDecoration: new BoxDecoration(
border: new Border(),
),
width: 75.0,
height: 75.0,
margin: new EdgeInsets.all(2.0),
)
);
}

List<Widget> buildGrid(){
Map dimensions = {"width" : 4, "height" : 6};
List<Widget> grid = new List<Widget>(dimensions["height"]);
List<Widget> tiles = [];

int counter = 0;

for (int i = 0; i < dimensions["height"]; i++){
tiles = [];
for (int j = 0; j < dimensions["width"]; j++){
tiles.add(buildTile(counter));
counter++;
}
grid[i] = new Row(
mainAxisAlignment: MainAxisAlignment.center,
children: tiles,
);
}
return grid;
}

List<Widget> copyElements(List<Widget> from){
List<Widget> to = [];
for (int i = 0; i < from.length; i++){
to.add(from[i]);
}
return to;
}

List<Widget> buildPlayground(List<Widget> grid){
List<Widget> playground = [];

playground = copyElements(grid);

playground.add(new Padding(
padding: new EdgeInsets.all(20.0),
child: new RaisedButton(
color: Colors.purple,
child: new Container(
width: 100.0,
child: new Center(
child: new Text("Done", style: new TextStyle(fontSize: 20.0)),
),
),
onPressed: (){

}
),
));
return playground;
}

@override
build(BuildContext context){
return new Scaffold(
appBar: new AppBar(
title: new Text("Game"),
),
body: new Container(
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: buildPlayground(buildGrid()),
)
),
);
}

它有点管用,但一旦我发现我想添加另一个硬编码的小部件,它就会非常乏味。关于如何解决这个问题的任何建议?谢谢

最佳答案

我想这是要走的路,但是你可以使用 GridView小部件,您可以创建 TileWidget 而不是 buildTile 函数。使用 GridView 应该清理您的代码,但是硬编码小部件是什么意思?

关于dart - Flutter - 将动态生成的元素与硬编码的元素结合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44306856/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com