Android 事件分发机制

2019-12-23  本文已影响0人  xulj100

从手触摸屏幕开始所产生一系列MotionEvent事件,将事件传递到具体的某一个View的过程就叫做事件分发,就是事件层层传递,直到被消费。

事件 简介
ACTION_DOWN 手指初次接触到屏幕时触发。
ACTION_MOVE 手指在屏幕上滑动时触发,会会多次触发。
ACTION_UP 手指离开屏幕时触发。
ACTION_CANCEL 事件被上层拦截时触发。
类型 相关方法 ViewGroup View
事件分发 dispatchTouchEvent
事件拦截 onInterceptTouchEvent X
事件消费 onTouchEvent
public boolean dispatchTouchEvent(MotionEvent ev){
   boolean consume;
   if(onInterceptTouchEvent(ev)){
       consume = onTouchEvent(ev);
   }else {
       consume = child.dispatchTouchEvent(ev);
   }
   return consume;
}

看上面代码可知,调用dispatchTouchEvent()方法则说明事件已经交到该View手上了,接来下要么View自己拦截(onInterceptTouchEvent())处理事件,要么传递给子View。

上一篇下一篇

猜你喜欢

热点阅读