Android的事件分发

1.事件从哪里来
通过我们用户在屏幕上的行为,驱动给我们算出来的数据,再经过android系统算出来一系列的事件类型。
2.事件分发所涉及到的方法
  • 1.事件分发 DispatcherTouchEvent(MotionEvent event );
  • 2.事件处理 onTochEvent方法(MotionEvent event)
  • 3.dispatchTouchEvent和OntouchEvent方法默认返回的都是false值
3.down事件的分发和处理
  • 对于事件分发的方法调用:像一颗树一样,从根部往它的分支依次按照层级传递;
  • 对于事件处理的方法调用:像一颗树一样,从分支依次往根部调用;
  • 如果一个view的DispatchtochEvent如果直接返回false的话, 它应该交给它的上层的OntouchEvent方法处理;
  • 如果一个View的dispatchTochEvent方法返回的是super.dispatchTouchEvent的话,它应该交给自己的ontouchEvent处理;
  • 如果一个View的dispatchTochEvent方法直接返回true的话,那么它就终止传递,不会调用任何一个view的onTouchEvent;
  • 如果一个View的onTouchEvent方法返回false,它会紧接着调用上一层的onTouchEvent方法;如果一个View的onTouchEvent方法返回true, 那么事件传递终止;
4.down事件的处理图



5.move事件
1.如果说你消费了down事件才能接收move事件
2.如果move事件在传递过程中没有被消费的话,那么下一个move还是会继续传递
3.如果move事件在传递过程中没有被消费的话,那么会调用Activity的onTouchEvent(MotionEvent event )
4.如果down事件在传递过程中被消费了,那么每一个 move事件都会被传递
5.如果上一个down事件被谁消费了,谁才有资格接受到move事件

6.move事件和事件拦截要注意的以下几点,如图所示:





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值