美文网首页
图解事件分发机制

图解事件分发机制

作者: 5478326809b3 | 来源:发表于2018-01-23 15:38 被阅读0次

一.为什么要学习事件分发机制:

熟悉整套的分发机制有助于更好的分析各种点击滑动冲突问题,更好去扩展控件的事件功能和开发自定义控件

讲解大纲

1.事件分发流程

2.DOWN,MOVE,UP事件传递关系

3.解决哪些实际问题

4.常见疑问

5.设计思想

一.事件分发流程(函数调用关系)

可以写简单的demo对照这张图试验一下

白色箭头:函数的调用流程

消费:函数的调用流程终止 不再执行箭头方向的函数

二.ACTION_DOWN,ACTION_MOVE,ACTION_UP事件

红色的箭头代表ACTION_DOWN 事件的流向

蓝色的箭头代表ACTION_MOVE 和 ACTION_UP 事件的流向

图1

图2

分析结论:dispatchTouchEvent 返回true消费终结事件,那么收到ACTION_DOWN 的函数也能收到 ACTION_MOVE和ACTION_UP.

图3

图4

图5

图6

图7

图8

图9

图10

图11

分析总结:

1.dispatchTouchEvent()和 onTouchEvent()用于消费事件、终结事件传递

2.onInterceptTouchEvent 并不能消费事件,它相当于是一个分叉口起到分流导流的作用

3.X控件dispatchEvent() true 那么Down,Moive,Up走的路径一样 终点为X控件dispatchEvent()

4.X控件ontouchEvent() true 那么Down走类U型 (Moive,Up走L型) 终点为X控件ontouchEvent()

5.onTouch—–>onTouchEvent—>onclick 层级关系

6.mOnTouchListener != null && (mViewFlags & ENABLED_MASK) == ENABLED && mOnTouchListener.onTouch(this, event)

如果X控件是非enable的那么只能重写onTouchEvent进行事件处理

三.解决哪些实际问题

Android滑动冲突解决方法(一) - 简书

四.设计思想

《JAVA与模式》之责任链模式 - CSDN博客

相关文章

  • android 事件分发

    图解 Android 事件分发机制 Android事件分发机制详解:史上最全面、最易懂

  • Android事件分发学习路线

    Android事件分发机制,大表哥带你慢慢深入(图解很赞) Android View 事件分发机制源码解析(鸿洋写...

  • 13.手势传递

    图解 Android 事件分发机制 结论 dispatchTouchEvent,onTouchEvent,retu...

  • Android 收藏

    图解 Android 事件分发机制 ViewPager,ScrollView 嵌套ViewPager滑动冲突解决

  • Android View的绘制流程

    View的绘制和事件处理是两个重要的主题,上一篇《图解 Android事件分发机制》已经把事件的分发机制讲得比较详...

  • 安卓高级话题 - 收藏集 - 掘金

    图解 Android 事件分发机制 - Android - 掘金转自:http://www.jianshu.com...

  • 图解事件分发机制

    一.为什么要学习事件分发机制: 熟悉整套的分发机制有助于更好的分析各种点击滑动冲突问题,更好去扩展控件的事件功能和...

  • 图解 Android 事件分发机制

    在Android开发中,事件分发机制是一块Android比较重要的知识体系,了解并熟悉整套的分发机制有助于更好的分...

  • 图解 Android 事件分发机制

    在Android开发中,事件分发机制是一块Android比较重要的知识体系,了解并熟悉整套的分发机制有助于更好的分...

  • 事件分发机制图解

网友评论

      本文标题:图解事件分发机制

      本文链接:https://www.haomeiwen.com/subject/fwgraxtx.html