Android事件机制
2016-02-29 21:38
274 查看
Android事件机制分为按键事件和触摸事件,以下主要是讲触摸事件机制。
主要的三个方法是:
事件分发:public boolean dispatchTouchEvent(MotionEvent ev)
事件拦截:public boolean onInterceptTouchEvent(MotionEvent ev)
事件响应(消费):public boolean onTouchEvent(MotionEvent ev)
(1) 当监听到有事件时,先进入事件分发处理流程,由最外层的view接收传递给下一层的view,依次向里面传递,直到没有子view的那个view,完成事件的传递过程。
(2) 一个View可以添加子View,这个View才有对事件分发(dispatchTouchEvent)和事件拦截(onInterceptTouchEvent),而假如这个View不能添加任何子View了,那他只有时
间响应(onTouchEvent),这个不难理解,因为它都没有下一级了,所以它只能去把事件消费掉,而不能去做分发和拦截了。
(3) dispatchTouchEvent方法
返回值为true时,事件会分发到当前view的dispatchTouchEvent(MotionEvent)进行消费,不会传递到下一层。
返回值为false时,则当前view获得的事件都返回到上一层onTouchEvent方法进行消费,上一层有可能直接是Activity或者是View。
返回值为默认值时(super.dispathTouchEvent)时,则事件会自动分发到当前View的onInterTouchEvent方法(拦截);
(4)onInterceptTouchEvent方法
返回值为true时,则表示当前View对当前事件进行拦截,然后交给当前View的onTouchEvent方法。
返回值为false时,则表示当前View不对当前事件进行拦截,继续交给子View的dispatchTouchEvent方法进行事件分发。
返回默认值是对该事件进行拦截,然后交给当前View的onTouchView进行响应
(5)onTouchEvent方法
返回值为true时,则表示当前View对当前事件进行消费。
返回值为false时,则表示当前View把事件传递到父View的onTouchEvent方法来接收。
默认值则与返回值为false时一致,把事件往上传递。
推荐文章:http://blog.csdn.net/pi9nc/article/details/9281829
主要的三个方法是:
事件分发:public boolean dispatchTouchEvent(MotionEvent ev)
事件拦截:public boolean onInterceptTouchEvent(MotionEvent ev)
事件响应(消费):public boolean onTouchEvent(MotionEvent ev)
(1) 当监听到有事件时,先进入事件分发处理流程,由最外层的view接收传递给下一层的view,依次向里面传递,直到没有子view的那个view,完成事件的传递过程。
(2) 一个View可以添加子View,这个View才有对事件分发(dispatchTouchEvent)和事件拦截(onInterceptTouchEvent),而假如这个View不能添加任何子View了,那他只有时
间响应(onTouchEvent),这个不难理解,因为它都没有下一级了,所以它只能去把事件消费掉,而不能去做分发和拦截了。
(3) dispatchTouchEvent方法
返回值为true时,事件会分发到当前view的dispatchTouchEvent(MotionEvent)进行消费,不会传递到下一层。
返回值为false时,则当前view获得的事件都返回到上一层onTouchEvent方法进行消费,上一层有可能直接是Activity或者是View。
返回值为默认值时(super.dispathTouchEvent)时,则事件会自动分发到当前View的onInterTouchEvent方法(拦截);
(4)onInterceptTouchEvent方法
返回值为true时,则表示当前View对当前事件进行拦截,然后交给当前View的onTouchEvent方法。
返回值为false时,则表示当前View不对当前事件进行拦截,继续交给子View的dispatchTouchEvent方法进行事件分发。
返回默认值是对该事件进行拦截,然后交给当前View的onTouchView进行响应
(5)onTouchEvent方法
返回值为true时,则表示当前View对当前事件进行消费。
返回值为false时,则表示当前View把事件传递到父View的onTouchEvent方法来接收。
默认值则与返回值为false时一致,把事件往上传递。
推荐文章:http://blog.csdn.net/pi9nc/article/details/9281829
相关文章推荐
- 【Android】15.4 例15-2--Notification基本用法
- Android studio 中的中文乱码的问题的解决
- 全屏以按钮重写
- Android:官方下拉刷新——SwipeRefreshLayout基本使用
- Android ListView 的基本用法
- ubuntu 搭建Android开发环境
- Android SwipeActionAdapter结合Pinnedheaderlistview实现复杂列表的左右滑动操作
- Android SwipeActionAdapter结合Pinnedheaderlistview实现复杂列表的左右滑动操作
- android中网络请求库volley的使用
- Android重要控件———ListView
- Android性能分析——Activity启动速度分析工具
- Material Design -- TextInputLayout
- Android控件postDelayed用法,View自带的定时器
- 程序加载中...(ProgressDialog和线程整合应用)
- 关于间接调用对象问题
- android进阶 重写view来实现全新控件
- Android之增量更新
- Android之增量更新
- android 进阶自定义控件1
- 初识-Android之智能短信项目相关技术整理