gpt4 book ai didi

dart - GridView onTap 只在创建时调用

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

我制作了一个带有子项的 GridView,每个子项都有一个 GestureDetector 和一个 onTap 方法集。但是只有在创建 View 时才会调用 onTap 事件,而不是在点击项目时调用。我在这里做错了什么?

class MyGridView extends StatelessWidget {

@override
Widget build(BuildContext context) {
return new Column(
children: <Widget>[
new Expanded(
child: new GridView.count(
crossAxisCount: 2,
children: [
new GridItem(0),
new GridItem(1)
]
)
)
]
);
}
}

class GridItem extends StatelessWidget {
final int code;
GridItem(this.code);

@override
Widget build(BuildContext context) {
return new GestureDetector(
onTap: print(code),
child: new Container(
height: 48.0,
child: new Text('$code')
)
);
}
}

最佳答案

你想要:


onTap: () { 打印(代码); },

您正在做的是调用 print,然后将 print 的返回值(将为 null)保存为 onTap 处理程序,这实际上禁用了 onTap 处理程序。如果您在日志中看到任何内容,那将是您实际进行构建的时间,而不是您点击时的时间。

关于dart - GridView onTap 只在创建时调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42741278/

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