Android 事件分发机制

来源:互联网 发布:手机身份证合成软件 编辑:程序博客网 时间:2024/06/18 06:37

看之前的博客,发现好多知识点,又忘记了。于是,打算慢慢补回来,顺便在加深下印象。Android 事件分发机制,其实是个很基础的问题,但是也是个很繁琐的问题。但对于开发人员来说,最终还是会落在onTouchEvent函数上,因为我们要在onTouchEvent函数中,做自己的操作。多的不说,一张图解决问题(看不懂的自己在网上查查资料,或者自己做个demo玩玩)

这里写图片描述

onTouch()和onTouchEvent()的区别:

这两个方法都是在View的dispatchTouchEvent中调用,但onTouch优先于onTouchEvent执行。如果在onTouch方法中返回true将事件消费掉,onTouchEvent()将不会再执行。

特别注意:请看下面代码

onTouch能够得到执行需要两个前提条件:
1. mOnTouchListener的值不能为空
2. 当前点击的控件必须是enable的。
源码如下:

mOnTouchListener != null && (mViewFlags & ENABLED_MASK) == ENABLED &&  mOnTouchListener.onTouch(this, event){}

最后,分享这边博客,讲的很详细,也很经典:
http://blog.csdn.net/carson_ho/article/details/54136311