Flutter 中可以使用 GestureDetector 来监听点击事件,而在监听全局包括父级的点击事件时,我们可以将 GestureDetector 包裹在一个 Stack 中,使其覆盖整个屏幕,然后设置它的 behavior 属性为 HitTestBehavior.opaque,这样它就可以截获所有点击事件了。

示例代码:

Stack(
  children: [
    // 其他widget
    GestureDetector(
      behavior: HitTestBehavior.opaque,
      onTap: () {
        // 处理点击事件
      },
    ),
  ],
)

这样,无论在哪个子widget上点击,都会触发这个 GestureDetector 的 onTap 回调函数。如果需要区分点击的是哪个子 widget,可以在回调函数中使用 HitTestResult 对象来获取点击位置的信息。

Flutter 全局点击监听:在 Widget 内捕获所有点击事件

原文地址: https://www.cveoy.top/t/topic/kplp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录