Android触摸事件传递机制

2017-06-19  本文已影响28人  CharmingWong

在安卓开发中会时常碰到滑动冲突的情况,比如有一个水平滑动的 ViewPager 里面有 Fragment,
Fragment 里面有水平滑动的 ViewGroup,当你的手指在屏幕水平滑动时,就会发生冲突,那怎么
解决这种冲突呢,首先开发者需要对 Activity、ViewGroup、View 的事件传递机制有个很好的认识。

触摸事件的类型

触摸事件对应的是MotionEvent类,事件类型主要有三种:

一次屏幕触摸操作,一定会产生 ACTION_DOWNACTION_UP 两种事件,如果用户按下
之后手指右移动一定的距离,则会发生 ACTION_MOVE 事件,如果只是点了一下,那么则不
会发生。

触摸事件传递

触摸事件的传递有三个阶段:

触摸事件传递的三个角色:

触摸事件传递三种类型

View 不消费事件

![View 消费事件](https://charmingw.github.io/images/MotionEvent_interested _view.png)

上一篇 下一篇

猜你喜欢

热点阅读