【问题标题】:Detect all taps anywhere on the screen, even when displaying a dialog?检测屏幕上任何位置的所有点击,即使显示对话框?
【发布时间】:2022-08-19 00:47:55
【问题描述】:

我知道我可以使用GestureDetector 来检测对其他小部件的点击。但是,如果我想检测任何和所有点击,无论当前显示什么 - 即即使当前页面前面显示了对话框或菜单。有什么方法可以做到这一点,而无需将每个对话框包装在GestureDetector 中并手动实现点击检测并从应用程序中显示的每个可能的对话框中通知我的点击检测方法?

我不想拦截或阻止点击传播,只是检测到用户触摸了屏幕。原因是我有一个方法,如果用户5分钟没有触摸屏幕应该运行(用户签出资源,如果用户没有触摸则需要自动签入屏幕一段时间)。

我目前已经实现并为显示签出数据的页面工作(它基本上是一个包含很多字段的表单)。问题是表单的某些部分打开了对话框,用户可能需要一段时间才能填写,所以现在如果用户花费超过 5 分钟来填写对话框中的数据,则主页面/表单会被签入并关闭它。

基本上,最方便的方法要么是某种全局触摸检测器,要么是在屏幕上的所有内容之上显示GestureDetector 的某种方式——包括对话框!

    标签: flutter flutter-routes flutter-dialog


    【解决方案1】:
    GestureDetector(
              behavior: HitTestBehavior.opaque,
              onTap: () => print('Tapped'),
              child: AppBody(),
            )
    

    【讨论】:

      猜你喜欢
      • 2014-10-19
      • 1970-01-01
      • 2020-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-09
      相关资源
      最近更新 更多