安卓事件分发机制

Android事件分发机制
概述:
Android事件分发机制是Android开发者必须要了解的基础
1.事件分发的对象是谁?
点击事件(Touch事件) 当用户触摸屏幕时(View或ViewGroup派生的控件),将产生点击事件(Touch事件)
Touch事件的相关细节(发生触摸的位置、时间等)被封装成MotionEvent对象
事件类型分为四种: 
MotionEvent.ACTION_DOWN 按下View 
MotionEvent.ACTION_UP 抬起View
MotionEvent.ACTION_MOVE  滑动View
MotionEvent.ACTION_CANCEL 结束事件(非人为原因)


2. 事件分发的本质
将点击事件(MotionEvent)传递到某个具体的view并且处理的过程
即事件传递的过程 = 分发过程


3.事件在哪些对象之前进行传递
Activity、ViewGroup、View


4.事件分发的顺序
Activity->ViewGroup->View
即一个点击事件发生后,事件先传到Activity、再传到ViewGroup、最终再传到View


5.事件分发过程由哪些方法写作完成?
dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()


方法 作用 调用时刻
dispatchTouchEvent()  分发(传递点击事件)           当点击事件能够传递给当前View时,该方法就会被调用


onTouchEvent()  处理点击事件  在dispatchTouchEvent()内部调用


onInterceptTouchEvent() 判断是否拦截了某个事件   在ViewGroup的dispatchTouchEvent()内部调用
只存在于ViewGroup

普通的View无该方法



详细的内容请看这个作者的博客,非常的全面和详细 包含代码图片讲解

点击打开链接

猜你喜欢

转载自blog.csdn.net/qq_32252957/article/details/80356643
今日推荐