我的问题是关于在子视图重叠并且在重叠区域上发生触摸时调用onTouchEvent的顺序。
我知道如果没有重叠的子视图,那么排序只是来自目标(被触摸的最内部视图),一直沿着它的祖先路径冒泡视图根。
但是,如果触摸位置位于重叠视图上会发生什么?这可能发生在内部大多数View(而不是ViewGroup)上,或者如果ViewGroup在父ViewGroup中重叠,它也可能发生。事情很快就会非常复杂。
我正在编写一些示例程序来测试一些有趣的案例,但我想知道是否有任何关于它的一般知识可以与我的实证研究结果交叉验证。
答案 0 :(得分:0)
自从我处理了这个问题已经有一段时间了,但如果内存服务正常,那么z顺序中的顶视图首先会获得触摸事件。它可以选择处理事件,或者在z顺序中将其传递得更低。 如果它处理事件,那么在onTouchListener" onTouch"事件,它返回true。此时,事件已被消耗,并且不会传递给它背后的视图。如果它返回false,则该触摸甚至将被传递到下一个视图。
答案 1 :(得分:0)
I finally figured this out myself. See the blog post: http://xiaolong-android.blogspot.com/2015/05/order-of-touch-event-dispatch-in-android.html