Android总结02_Touch事件的分发与消费机制

说到Android事件的分发与消费机制,其实主要就是集中到三个方法上,也就是dispatchEvent(分发事件),onInterceptTouchEvent(拦截事件),OnTouchEvent(处理事件).利用这几个方法可以实现一些控件(例如上拉下拉控件)下面先介绍一下这几个方法的使用.

dispatchEvent(分发事件):当触摸事件发生时,由Activity的dispatchEvent接受事件会以隧道方式由最外层的根部元素慢慢向里传递

onInterecptTouchEvent(拦截事件)(最底层的view不会有该事件):拦截事件,当前View的dispatchEvent分发事件默认返回super.dispatchEvent()时,由当前View的onInterecptTouchEvent接受并执行,其返回结果共有三种情况

        1.按照系统默认,返回super.onInterecptTouchEvent时,会将事件转移到在下一级的容器里的dispatchEvent分发事件继续执行,或者由当前view的onTouchEvent实现

        2.返回true,拦截当前的触摸事件,将其送到当前view的onTouchEvent事件里

        3.返回false,不拦截当前的触摸事件,将其送到下一级的dispatchTouchEvent里面处理

onTouchEvent(处理事件):当系统将触摸事件根据隧道方式送到当前view的onTouchEvent,表明让当前的view处理

       1.按照系统默认,返回super.onTouchEvent时,与返回false结果差不多

       2.返回true,表示事件已经消费完毕,等待下一次事件传入

       3.返回false,未能及时消费,将其传到上一层的onTouchEvent处理,直到消费完毕或者到根容器(如果事件一直未处理,则不会有下一次事件),


触摸事件进行中时,如果上一层拦截了事件,则本次触摸事件结束之前,当前层再不会接受触摸事件










  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值