前几天在公司遇到一个双层view叠加,而此时系统存在click声音导致点击上层view空白处有声音的问题。
双层view叠加不同于单个view的触摸事件分发机制,单个view的触摸事件
我们先看对于一个viewGroup来说,触摸事件的分发
一般来说,开发Android应用程序的UI界面都不会直接实用View和ViewGroup,而是使用这两大基类的派生类。
Android 中与 Touch 事件相关的方法包括:dispatchTouchEvent(MotionEvent ev)、onInterceptTouchEvent(MotionEvent ev)、onTouchEvent(MotionEvent ev);
###### 1.事件分发:(看过我上篇Fragment中监听触摸事件的兄弟就该知道该方法的妙用)
public boolean dispatchTouchEvent(MotionEvent ev)
该方法会以隧道方式(从根元素依次往下传递直到最内层子元素或在中间某一元素中由于某一条件停止传递)将事件传递给最外层 View 的 dispatchTouchEvent(MotionEvent