dispatchTouchEvent总结

来源:互联网 发布:php防止xss 编辑:程序博客网 时间:2024/05/29 02:33

看了大神的对有关dispatchTouchEvent的源码分析后(http://blog.csdn.net/yanbober/article/details/45887547),自己总结一下

1、每个View的按键都是通过dispatchTouchEvent来分发,onClick、onTouch也都是在该方法中调用的。

2、dispatchTouchEvent返回false,则之后的action将不会接收到,如action_DOWN的时候返回了false,将不会再收到之后的Action_UP的内容

3、在dispatchTouchEvent方法中,通过如下的代码来判断,若没有设置onTouchListener,且控件是disenabled,则不会执行onTouch方法。

 if (li != null && li.mOnTouchListener != null                    && (mViewFlags & ENABLED_MASK) == ENABLED                    && li.mOnTouchListener.onTouch(this, event)) {                result = true;            }

4、如果执行了onTocuh方法,若onTouch返回true,则不会再执行onTouchEvent(onCLick方法也在其中),dispatchTouchEvent就直接返回true。若onTouch返回false,那么dispatchTouchEvent的返回值应该与onTouchEvent的返回值相同