【问题标题】:Detect every touch on the screen检测屏幕上的每一次触摸
【发布时间】:2013-06-06 13:24:28
【问题描述】:

我想在我的应用中检测用户在屏幕上的触摸并在这种情况下重置一些计时器。我发现我可以使用 onTouchEvent 但它只有在我按下没有任何按钮的可用空间时才有效,......我不想在我的项目中的每个视图上注册 touchEventListener。有没有其他方法可以做到?

【问题讨论】:

  • 尝试在您的活动中覆盖 dispatchTouchEvent()
  • 谢谢!这是最简单的解决方案。我在 AbstractActivity 中覆盖了这个方法,它可以正常工作。

标签: android events touch screen listener


【解决方案1】:

确实,首先你必须在你的活动中重写这个方法:

public boolean onTouchEvent(MotionEvent event);

然后,您必须禁用可点击元素的操作。

【讨论】:

    【解决方案2】:

    您应该为父视图实现 OnTouchListener 并使用 setClickable(false) 使子视图不可点击...

    如果这不起作用,您可能需要遵循this answer中建议的方法

    【讨论】:

      【解决方案3】:

      您所要做的就是在顶级容器视图中覆盖 onInterceptTouchEvent (MotionEvent ev) 方法,或者您可以覆盖 Activity.onUserInteraction 但它还包括键和轨迹球操作

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-09
        • 2016-01-15
        • 2023-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多