一.事件传递在那些类中:
1.Activity中:dispathTouchEvent,onToutchEvent
2.ViewGroup:dispathTouchEvent,onInterceptTouchEvent,onTouchEvent
3.View:dispathTouchEvent,onTouchEvent
二.传递过程:
1.触摸手机进入事件分发Activity的dispathTouchEvent方法,返回true或者false代表自己消费,调用super.dispathTouchEvent方法传递到ViewGroup的dispathTouchEvent方法,返回true代表自己消费不在传递,返回false会调用Activity的onTouchEvent方法(回传),调用super.dispathTouchEvent会进入onInterceptTouchEvent拦截方法,返回true代表拦截会进入自己的onTouchEvent方法,返回false或者super同名方法代表不会拦截继续向下传递到View的dispathTouchEvent方法进行分发,返回true代表自己消费,返回false回传到ViewGroup的onTouchEvent中处理,调用super同名方法进入自己的onTouchEvent方法,返回false回传到ViewGroup的onTouchEvent中处理,返回true或者super同名方法自己消费。
dispathTouchEvent: true 自己消费
false 有父view回传,没有自己消费
super同名方法:Activity和ViewGroup向下传递,view调用自己的onTouchEvent方法处理
onTouchEvent:true 自己消费
false 回传
super同名方法 向上回传 view自己消费
onInterceptTouchEvent:true 拦截调用onTouchEvent
false 向下传递
super同名方法:向下传递
3.触摸事件的类型:
ACTION_DOWN : 手机按下就触发
ACTION_MOVE : 手指按下到抬起中有移动手机会触发
ACTION_UP : 手指抬起
如何获取触摸事件类型:
int action = MotionEvent.getActionMasked();
学习记录来源 https://blog.csdn.net/geduo_83/article/details/86560896

本文深入解析Android中触摸事件的传递机制,包括事件在Activity、ViewGroup及View中的处理流程,如dispatchTouchEvent、onTouchEvent和onInterceptTouchEvent方法的作用,以及触摸事件的类型如ACTION_DOWN、ACTION_MOVE和ACTION_UP。

2066

被折叠的 条评论
为什么被折叠?



