【问题标题】:Android touch event handling for overlapping child views重叠子视图的 Android 触摸事件处理
【发布时间】:2023-03-28 12:36:01
【问题描述】:

我的问题是关于当子视图重叠并且触摸发生在重叠区域时在子视图上调用 onTouchEvent 的顺序。

我知道,如果没有重叠的子视图,那么排序只是从目标(被触摸的最里面的视图)一直沿其祖先路径冒泡视图根。

但是,如果触摸位置在重叠视图上会发生什么?这可能发生在最内部的 View(不是 ViewGroup)上,或者如果 ViewGroup 在父 ViewGroup 中重叠,也可能发生这种情况。而且事情很快就会变得非常复杂。

我正在编写一些示例程序来测试一些有趣的案例,但我想知道是否有任何关于它的一般知识可以与我的经验发现进行交叉验证。

【问题讨论】:

标签: android view touch


【解决方案1】:

自从我处理这个问题以来已经有一段时间了,但是如果记忆正确,那么会发生 z 顺序中的顶视图首先获得触摸事件。它可以选择处理事件,或者在 z 顺序中将其传递到较低的位置。 如果它处理事件,则在其 onTouchListener 的“onTouch”事件中,它返回 true。此时,该事件已被消费,不会传递给它背后的视图。如果它返回 false,则该触摸甚至将传递到下一个视图。

【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 2016-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-12
      • 1970-01-01
      • 2011-07-11
      • 1970-01-01
      • 2023-03-11
      相关资源
      最近更新 更多