事件分发机制

对于安卓事件传递和消费机制,他给我们提供了3个方法,DispatchTouchEvent(),OnInterceptTouchEvent()和OnTouchEvent():

当监听到事件时,首先由Activity捕获;开始进入事件分发流程.

DispatchTouchEvent():

如果返回的是true,表明事件不会再本层进行分发并且在事件分发自身中已经被消费,并且事件已经完结;

如果返回false,表明事件也不会在本层进行分发,但他会交给上层控件的onTouchEvent()方法进行消费;

如果本层控件已经是activity,那么会被系统消费或处理.

如果返回super,那么事件就会交给本层的onInterceptTouchEvent()进行处理.

OnInterceptTouchEvent():

如果返回true,则表示事件进行拦截,交给本层的onTouchEvent()方法进行消费;

如果返回false或者super,就不会对事件进行拦截,都会交给子view的disPatchTouchEvent()方法进行处理.

OnTouchEvent():

如果返回true,表示TouchEvent处理完事件后消费了本次事件,事件也将终结,不会再有后续的冒泡

如果返回false,表示TouchEvent处理完事件后继续向上一层的view冒泡,交给上一层的OnTouchEvent进行处理.

如果返回super,则默认的处理逻辑和false一样,也是本层处理完时间后交给上一层处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值