android 事件分发
16lz
2022-03-16
执行顺序是:
Activity.dispatchTouchEvent()
ViewGroup.dispatchTouchEvent()
View.dispatchTouchEvent()
View.onTouchEvent()
ViewGroup.onTouchEvent()
Activity.onTouchEvent()
onInterceptTouchEvent 返回false,则后续再来的事件(比如ACTION_UP)会继续传递给子view的ontouchEvent ,
onInterceptTouchEvent 返回true,则后续再来的事件(比如ACTION_UP)就不会传递给子view.
view的onTouchEvent返回true,则表示事件已经消化干净,viewgroup的onTouchEvent将不会被调用,否则相反.
附上官方对于onInterceptTouchEvent 的解释;
3、For as long as you return false from this function, each following event (up to and including the final up) will be delivered first here and then to the target's onTouchEvent().
4、If you return true from here, you will not receive any following events: the target view will receive the same event but with the action ACTION_CANCEL, and all further events will be delivered to your onTouchEvent() method and no longer appear here.
Activity.dispatchTouchEvent()
ViewGroup.dispatchTouchEvent()
View.dispatchTouchEvent()
View.onTouchEvent()
ViewGroup.onTouchEvent()
Activity.onTouchEvent()
onInterceptTouchEvent 返回false,则后续再来的事件(比如ACTION_UP)会继续传递给子view的ontouchEvent ,
onInterceptTouchEvent 返回true,则后续再来的事件(比如ACTION_UP)就不会传递给子view.
view的onTouchEvent返回true,则表示事件已经消化干净,viewgroup的onTouchEvent将不会被调用,否则相反.
附上官方对于onInterceptTouchEvent 的解释;
3、For as long as you return false from this function, each following event (up to and including the final up) will be delivered first here and then to the target's onTouchEvent().
4、If you return true from here, you will not receive any following events: the target view will receive the same event but with the action ACTION_CANCEL, and all further events will be delivered to your onTouchEvent() method and no longer appear here.
更多相关文章
- Android双击返回键退出程序
- 一个android访问http资源的便捷工具类――HttpHelper
- Android通过PopupMenu定义弹出菜单的位置
- android 之 读取本地json文件返回string
- android实现双击事件的监听
- Android(安卓)- 禁止Gridview滚动
- Android解析微博小尾巴
- Android之Widget
- android连续按两次返回退出程序(完整代码)