android事件传递机制

来源:互联网 发布:付费的炒股软件 编辑:程序博客网 时间:2024/06/16 04:52

与事件传递相关的三个方法:

  • dispatchTouchEvent(MotionEvent ev)
  • onInterceptTouchEvent(MotionEvent ev)
  • onTouchEvent(MotionEvent ev)

三个方法之间如何协作

1.触摸事件首先传递给最外层ViewGroup的dispatchTouchEvent方法2.dispatchTouchEvent将事件传递给自己的onInterceptTouEvent方法判断是否拦截该事件。3.若onInterceptTouchEvent方法返回true,表示拦截该事件,dispatchTouchEvent将事件传递给自己的onTouchEvent方法并处理。4.若onInterceptTouchEvent方法返回false,表示不拦截事件,并由dispatchTouchEvent将事件交由子控件的dispatchTouchEvent方法处理5.如果子控件是ViewGroup,则处理事件方式与父控件一致。6.如果子控件是View,则dispatchTouchEvent方法直接将事件传递给onTouchEvent方法处理。7.如果onTouchEvent方法返回true,表示该事件被子控件处理了。8.如果onTouchEvent方法返回false,则表示该子控件不消费该事件,并将该事件传递给父控件的onTouchEvent处理。9.如果直到最外层控件都不处理该事件,则表示此次触摸事件为无用事件,自动销毁。
0 0