Android面试一问一答:事件分发

描述一下事件分发机制

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

你可能感兴趣的:(Android面试一问一答:事件分发)