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

Android触摸事件传递读书笔记。

2017-10-24 19:46 211 查看
Activity、View、ViewGroup的触摸事件传递分为三个阶段:

分发(Dispatch),分发事件对应dispatchTouchEvent方法。方法返回true表示触摸事件被当前视图消费掉,不再分发事件;方法返回super.dispatchTouchEvent表示继续分发该事件。如果是ViewGroup,除了分发事件后还有onInterceptTouchEvent判定的是否拦截该事件。

拦截(Intercept),触摸事件的拦截对应onInterceptTouchEvent方法。这个方法只在ViewGroup以及其子类中才有。方法返回true表示拦截这个事件,不再分发给子视图,同时交由自身的onTouchEvent进行消费;返回false或者super.onInterceptTouchEvent表示不对事件进行拦截。

消费(Consumer),事件的消费对应的是onTouchEvent方法。该方法返回true表示当前视图可以处理对应的事件,事件将不会向上传递给父视图;返回false表示当前视图不处理这个事件,事件会被传递给父视图的onTouchEvent方法进行处理。

以上三点是我从书上的摘抄,看了还有有些困惑的。下面就是解决困惑的实验时间。

首先来看看Activity、View、ViewGroup中对触摸事件的处理。

Activity:

由于不想篇幅太长,Activity触摸事件源码分析另起一篇文章 Android中Activity源码分析

//TODO未完待续。。。

本篇主要是读了顾浩鑫所著《Android高级进阶》第一章的摘抄以及一些个人的见解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息