您的位置:首页 > 移动开发 > Android开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: