View的事件传递机制
来源:互联网 发布:淘宝上买摩托靠谱吗 编辑:程序博客网 时间:2024/05/19 18:46
事件传递机制中最重要的两个函数
dispatchTouchEvent(MotionEvent ev)
负责分发事件onTouchEvent(MotionEvent event)
负责处理事件
Activity层:
触摸事件发生后首先调用Activity的dispatchTouchEvent(MotionEvent event)函数,然后调用onUserInterface,接着就把事件传递给root View,也就是一个GroupView分发给他的子View。如果分发下去的事件没人处理的话,会调用Activity自己的onTouchEvent函数来处理事件。
ViewGroup层:
触摸事件传递给ViewGroup之后,他也通过dispatchTouchEvent对事件进行派发,onInterceptTouchEvent()函数用来拦截事件,如果返回值为true,则不会继续传递,如果返回值为false,则不对此事件进行拦截。onInterceptTouchEvent()函数只有ViewGroup类有。View类没有。
View层:
触摸事件传递给View之后,他也通过dispatchTouchEvent函数进行处理,首先触发的是onTouchListener中的onTouch函数(如果有设置的话),然后会执行onTouchEvent函数,最后如果有click事件则会执行click事件。
总结,真正进行处理的只有View中的代码,但是每一层次都有dispatchTouchEvent进行传递。每一次只会传递一个Action,当一个Action操作完了之后才会进行下一个,比如0表示ACTION_DOWN,1表示ACTION_UP,2表示ACTION_MOVE。
本文有参考【工匠若水 http://blog.csdn.net/yanbober】,但绝无抄袭,算是读书笔记吧。
- View的事件传递机制
- View的事件传递机制
- View的事件传递机制
- view的事件传递机制
- View的事件传递机制
- View的事件传递机制
- View事件传递机制
- View 事件传递机制
- View事件传递机制
- 嵌套view之间的事件传递机制
- 深入理解 View 的事件传递机制
- View的事件传递机制总结
- Android View事件分发机制--点击事件的传递规则
- Android View 事件传递机制
- Android View事件传递机制
- Android-view事件传递机制
- 【Android View】 事件传递机制
- 浅谈View事件传递机制
- Java-----判断是否为基本类型
- UIPickerView
- Android 传感器初探
- C++中break,continue,return用法
- 多线程相关
- View的事件传递机制
- 短信验证码(SMS verification)是什么
- 判断UitableView reloadData 结束的方法
- java -BolokingQueue
- ORA-15027: active use of diskgroup "TEST" precludes its dismount
- 揭开Java EE开发框架之谜
- centos vim编码问题
- Leetcode 232. Implement Queue using Stacks (Easy) (cpp)
- kkpager.js(jq分页插件)