描述一下事件分发机制
- 所谓的事件分发其实就是事件的传递过程,主要涉及到三个方法:
public boolean dispatchTouchEvent(MotionEvent ev)
public boolean onInterceptTouchEvent(MotionEvent ev)
public boolean onTouchEvent(MotionEvent ev)
- 其中InterceptTouchEvent方法是ViewGroup独有的。其返回值用来决定该ViewGroup是否处理这个事件。
- dispatchTouchEvent方法是用来分发这个事件的,InterceptTouchEvent在这个方法内的开始调用,如果要处理这个事件,则调用该view的onTouchEvent方法,如果不处理这个事件,则调用子类的dispatchTouchEvent方法。
- onTouchEvent方法是用来最终处理具体事件的,比如手指的按下、滑动和抬起。