Android中 onInterceptTouchEvent, onTouchEvent 理解
来源:互联网 发布:nginx 目录映射 编辑:程序博客网 时间:2024/06/05 06:52
[tisa ps:正确的使用方法是,在此方法内仅判断事件是否需要拦截,然后返回。即便需要拦截也应该直接返回true,然后由onTouchEvent方法进行处理。]
onTouchEvent用于处理事件,返回值决定当前控件是否消费(consume)了这个事件。尤其对于ACTION_DOWN事件,返回true,表示我想要处理后续事件;返回false,表示不关心此事件,并返回由父类进行处理。
可能你要问是否消费了又区别吗,反正我已经针对事件编写了处理代码?答案是有区别!比如ACTION_MOVE或者ACTION_UP发生的前提是一定曾经发生了ACTION_DOWN,如果你没有消费ACTION_DOWN,那么系统会认为ACTION_DOWN没有发生过,所以ACTION_MOVE或者ACTION_UP就不能被捕获。
在没有重写onInterceptTouchEvent()和onTouchEvent()的情况下(他们的返回值都是false), 对上面这个布局,MotionEvent事件的传递顺序如下:
当某个控件的onInterceptTouchEvent()返回值为true时,就会发生截断,事件被传到当前控件的onTouchEvent()。如我们将LayoutView2的onInterceptTouchEvent()返回值为true,则传递流程变成:
如果我们同时将LayoutView2的onInterceptTouchEvent()和onTouchEvent()设置成true,那么LayoutView2将消费被传递的事件,同时后续事件(如跟着ACTION_DOWN的ACTION_MOVE或者ACTION_UP)会直接传给LayoutView2的onTouchEvent(),不传给其他任何控件的任何函数。同时传递给子空间一个ACTION_CANCEL事件。传递流程变成(图中没有画出ACTION_CANCEL事件):
[tisa ps:总体来看, onInterceptTouchEvent是自rootview向下传递, onTouchEvent正好相反。]
文章来源:http://blog.csdn.net/shangmin1990/article/details/8949821
- Android中 onInterceptTouchEvent, onTouchEvent 理解
- Android中dispatchTouchEvent, onInterceptTouchEvent, onTouchEvent的理解
- Android中dispatchTouchEvent, onInterceptTouchEvent, onTouchEvent的理解
- Android中dispatchTouchEvent, onInterceptTouchEvent, onTouchEvent的理解
- Android中dispatchTouchEvent, onInterceptTouchEvent, onTouchEvent的理解
- Android中dispatchTouchEvent, onInterceptTouchEvent, onTouchEvent的理解
- Android中dispatchTouchEvent, onInterceptTouchEvent, onTouchEvent的理解
- Android中dispatchTouchEvent, onInterceptTouchEvent, onTouchEvent的理解
- Android中dispatchTouchEvent, onInterceptTouchEvent, onTouchEvent的理解
- Android中onInterceptTouchEvent与onTouchEvent
- Android中onInterceptTouchEvent与onTouchEvent
- Android中onInterceptTouchEvent与onTouchEvent
- Android中onInterceptTouchEvent与onTouchEvent
- Android中onInterceptTouchEvent与onTouchEvent
- Android中onInterceptTouchEvent与onTouchEvent
- Android中onInterceptTouchEvent与onTouchEvent
- Android中onInterceptTouchEvent与onTouchEvent
- Android中onInterceptTouchEvent与onTouchEvent
- s5pv210开发板编译linux make xconfig 不能用的解决办法
- SSE2指令--使用SSE2的整型内存操作和初始化:设置(Set)
- 简单的数据存储--Preferences的使用
- 一键退出一个app中所有activity
- 杭电1312HDU acm ---Red and Black---DFS深度优先算法
- Android中 onInterceptTouchEvent, onTouchEvent 理解
- hdu 1069 Monkey and Banana
- 手把手教你调试STL容器(上)
- Android JNI实例代码(二)
- ARM小问题
- cocos2d-x ubuntu开发
- 在eclipse中编译Launcher2的方法
- nslookup用法
- 下载