Android事件分发

点击某个控件,首先会去调用activity的dispatchTouchEvent方法,然后通过window传递给decorview最终传递给我们设置的布局,如果不拦截事件,在布局的dispatchTouchEvent方法中找到被点击的相应控件,再去调用该控件的dispatchTouchEvent法,dispatchTouchEvent方法会调用onTouchEvent方法,如果拦截事件直接调用viewgroup的onTouchEvent方法


1. Android事件分发是先传递到ViewGroup,再由ViewGroup传递到View的。

2. 在ViewGroup中可以通过onInterceptTouchEvent方法对事件传递进行拦截,onInterceptTouchEvent方法返回true代表不允许事件继续向子View传递,返回false代表不对事件进行拦截,默认返回false。

3. 子View中如果将传递的事件消费掉,ViewGroup中将无法接收到任何事件。

Android事件分发_第1张图片

你可能感兴趣的:(Android事件分发)