Android事件分发机制学习笔记

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

一.事件传递在那些类中:

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  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值