自定义View(三) 事件拦截总结

本文深入解析了Android中事件拦截机制的三大核心方法:dispatchTouchEvent、onInterceptTouchEvent和onTouchEvent的作用及调用流程。详细说明了事件如何在View和ViewGroup间传递,包括事件的消费、分发和拦截原则,以及事件序列的处理方式。

1.事件拦截主要通过三个方法控制:

public boolean dispatchTouchEvent(MotionEvent ev);

public boolean onInterceptTouchEvent(MotionEvent ev);//只有ViewGroup才会调用

public boolean onTouchEvent(MotionEvent event) ;

2.dispatchTouchEvent返回true,则它本身消费,返回false,则由它的父类消费

3.在ViewGroup中,onInterceptTouchEvent返回true,则调用其本身的onTouchEvent,返回false,则事件继续分发

4.如onTouch方法返回true,则不调用onTouchEvent

5.从Down到无数Move再到Up组合成一个事件序列,正常情况下一个View一旦拦截,则接下的事件都由它来处理

6.某个View如果不处理ACTION_DOWN事件,那么同一事件的其它事件序列不会交给它处理,事件交给父类做

7.某个View如果不消耗除ACTION_DOWN的事件,那么这个事件会消失,不会传给父类去做,最终这些消失的事件传递给

Activity处理

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值