flutter 通过GlobalKey添加点击事件
在Flutter中,可以通过GlobalKey来添加点击事件,具体步骤如下:
- 在需要添加点击事件的Widget中,定义一个GlobalKey对象:
final GlobalKey _key = GlobalKey();
- 在Widget的build方法中,将该GlobalKey对象赋值给需要添加点击事件的Widget:
Container(
key: _key,
child: Text('Click Me'),
)
- 在需要添加点击事件的地方,使用GlobalKey对象调用其currentContext属性获取BuildContext对象,然后使用该对象来添加点击事件:
GestureDetector(
onTap: () {
final RenderBox box = _key.currentContext.findRenderObject();
final Offset offset = box.localToGlobal(Offset.zero);
// 在这里添加点击事件的处理逻辑
},
child: Container(
key: _key,
child: Text('Click Me'),
),
)
在上面的代码中,我们使用GestureDetector来添加点击事件,然后在onTap回调函数中,使用GlobalKey对象的currentContext属性获取BuildContext对象,然后使用该对象来获取该Widget在屏幕上的位置信息,最后在这里添加点击事件的处理逻辑即可。
需要注意的是,使用GlobalKey添加点击事件可能会影响性能,因为每次点击事件都需要重新计算该Widget在屏幕上的位置信息。如果需要添加多个点击事件,建议使用其他方式来实现
原文地址: https://www.cveoy.top/t/topic/c8um 著作权归作者所有。请勿转载和采集!