Android事件分发机制简述

转载请注明出处:http://blog.csdn.net/a1018998632/article/details/50571486

看了郭霖大神:android事件分发机制。还有我之前转过的一篇 :View事件的传递。感觉受益匪浅。所以想写点什么来总结一下。

首先是事件分发的几个背景:

背景1:传递函数: dispatchTouchEvent。用于传递事件,本函数被定义在View中,ViewGroup重写了该函数。

背景2:拦截函数:onInterceptTouchEvent。用于拦截事件,本函数被定义在ViewGroup中。

背景3:消费函数1:onTouch。用于传递过来的事件消费掉,本函数是OnTouchLisener里面的需要被重写的函数。

背景4:消费函数2:onTouchEvent。同用于消费事件,本函数被定义于View中,比onTouch晚执行一步,可能不会执行。

源代码和语言上的解析:郭霖大神已经分析的很完美了:奉上链接大家可以去看看

http://blog.csdn.net/guolin_blog/article/details/9097463

http://blog.csdn.net/guolin_blog/article/details/9153761

我则将事件分发机制做成了一张图:大家可以结合上面两篇博客和我之前转载的一篇博客看看:http://blog.csdn.net/a1018998632/article/details/50569113



几个总结:

1.onClick在onTouch之后调用

2.onTouch默认flase

3.一般情况,事件是先传到最底层的子view,若子View不可点击,单机,长按则将事件返回给上一层,否则事件消耗。或者将onTouch指定为true,将事件消耗。


参考文献:

http://blog.csdn.net/guolin_blog/article/details/9097463

http://blog.csdn.net/guolin_blog/article/details/9153761

http://blog.csdn.net/a1018998632/article/details/50569113

http://my.oschina.net/banxi/blog/187267






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值