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高级进阶》第一章的摘抄以及一些个人的见解
分发(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高级进阶》第一章的摘抄以及一些个人的见解
相关文章推荐
- 《Android高级进阶》读书笔记——第一章:Android 触摸事件传递机制
- Android: 详解触摸事件如何传递
- Android触摸事件传递
- Android: 详解触摸事件如何传递 - 玲音
- Android 触摸事件传递机制
- android 触摸事件传递机制
- Android: 详解触摸事件如何传递
- Android ViewGroup 触摸事件传递机制
- Android 触摸事件传递机制
- Android O: 触摸事件传递流程源码分析(上)
- Android 触摸事件传递机制
- 【Android View】Android中View对触摸事件的处理和传递dispatchTouchEvent、onInterceptTouchEvent
- Android中Activity触摸事件传递源码学习
- 彻底掌握Android的Touch触摸事件传递机制
- Android触摸事件传递机制初识
- Android的触摸事件传递分析
- Android触摸事件传递机制
- Android中触摸事件传递分发机制
- android触摸事件传递
- Android_触摸事件传递机制