Flutter 全局点击监听:在 Widget 内捕获所有点击事件
Flutter 中可以使用 GestureDetector 来监听点击事件,而在监听全局包括父级的点击事件时,我们可以将 GestureDetector 包裹在一个 Stack 中,使其覆盖整个屏幕,然后设置它的 behavior 属性为 HitTestBehavior.opaque,这样它就可以截获所有点击事件了。
示例代码:
Stack(
children: [
// 其他widget
GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () {
// 处理点击事件
},
),
],
)
这样,无论在哪个子widget上点击,都会触发这个 GestureDetector 的 onTap 回调函数。如果需要区分点击的是哪个子 widget,可以在回调函数中使用 HitTestResult 对象来获取点击位置的信息。
原文地址: https://www.cveoy.top/t/topic/kplp 著作权归作者所有。请勿转载和采集!