flutter - 你如何在 Flutter 的堆栈中显示已定位的小部件列表?
问题描述
我需要在堆栈中显示定位小部件的列表(如下)。
List<TableDraggableBall> tableBalls = [
TableDraggableBall(selectedTableBall: 'images/Cue-Ball.png', left: 150, top: 200),
TableDraggableBall(selectedTableBall: 'images/8-Ball.png', left: 800, top: 100),
TableDraggableBall(selectedTableBall: 'images/9-Ball.png', left: 200, top: 300),
];
这是构建列表的 Widget。
class TableDraggableBall extends StatefulWidget {
@required
final String selectedTableBall;
double left;
double top;
TableDraggableBall({required this.selectedTableBall, required this.left, required this.top});
@override
_TableDraggableBallState createState() => _TableDraggableBallState();
}
class _TableDraggableBallState extends State<TableDraggableBall> {
@override
Widget build(BuildContext context) {
return Positioned(
top: widget.top,
left: widget.left,
child: Draggable<String>(...)
);
}
}
最后,我需要将所有“TableDraggableBall”放入以下堆栈中。我确信这很容易做到,但我不知道显示整个小部件列表的语法是什么。我已经被困在这里几个小时了。我已经尝试了每一个,for in,我能找到的任何东西,但我似乎无法获得正确的语法。(只编程了大约一个月)
@override
Widget build(BuildContext context) {
return.....
Stack(
children: [
Center(...),
Center(...),
tableBalls.last,
],
),
.....
}
如果我将 tableBalls.last 放入堆栈中,它会起作用并显示列表中的最后一个球。如果我把 tableball.first 放在首位,它也可以。将所有小部件添加到屏幕的语法是什么?
我也试过这样做,但是当我在堆栈中调用 displayAllBalls() 时,我收到一条错误消息“无法将‘List’类型的值分配给‘Widget’类型的变量”
List displayAllBalls() {
List<TableDraggableBall> tableDraggableBalls = [
TableDraggableBall(
selectedTableBall: 'images/Cue-Ball.png', left: 150, top: 200),
TableDraggableBall(
selectedTableBall: 'images/8-Ball.png', left: 800, top: 100),
TableDraggableBall(
selectedTableBall: 'images/9-Ball.png', left: 200, top: 300),
];
return displayAllBalls.call();
}
解决方案
这是我必须用来使它工作的代码。
for(int i = 0 ; i < tableBalls.length ; i++) tableBalls.elementAt(i),
换句话说,
for(int i = 0 ; i <yourListOfWidgets.length ; i++;) yourListofWidgets.elementAt(i),
推荐阅读
- c# - 从另一个应用程序捕获 WPF 中单击对话框按钮的句柄
- algorithm - 将数字转换为 xy 坐标
- ocr - 如何从 Android 应用程序中的图像中提取发票数据?
- regex - 正则表达式: \s 不匹配 \r\n
- ruby-on-rails - 动态规范标签
- postgresql-9.4 - 查询优化如何减少postgresql中的计划时间和执行时间
- android - 如何在显示进度条的同时使用 Kotlin Coroutine.LiveData + Retrofit 进行 API 调用?
- php - 如何在 Opencart3 中检查上次执行的查询
- javascript - 当 JS 变量等于 x 时,尝试在 HTML div 选项卡中显示某些“故事情节”
- c - scanf("%*[^\n]"); 在交流程序中使用?