当前位置: 首页 > news >正文

源码阅读:Android UI分发机制

源码阅读:Android UI分发机制

方法名

dispatchTouchEvent(MotionEvent ev)

 

基础逻辑

 @Overridepublic boolean dispatchTouchEvent(MotionEvent ev) {boolean intercepted = onInterceptTouchEvent(ev);boolean consume = false;if(intercepted){consume = onToucheEvent(ev);}else{consume = child.dispachToucheEvent(ev);}return consume;
}

这是一段伪代码

在点击事件的分发过程中,dispatchTouchEvent是首先进行处理的

其中onInterceptTouchEvent的返回值表明这个ViewGroup会不会拦截这个事件,如果拦截,表示这个事件会交由这个ViewGroup的onTouchEvent来处理

如果不拦截,就表示需要在子控件中去处理这个点击事件;

不管这个事件最终由谁处理,都会得到一个消息是否消耗的consume变量,这个变量表示的是消息是否被消耗掉

如果消息不被消耗掉的话 最终该消息会交由Activity的onTouchEvent来处理