本文章基于android 4.2.1,从view拿到事件信息开始,首先对事件做一些检测及预处理;如果事件有问题的话则抛弃信息,否则的话开始对事件进行分析。

首先判断mListenerInfo是否为空,是否设置了onTouch事件;如果设置了事件则执行onTouch事件,当onTouch方法消耗了事件则消息传递结束;否则将事件交给OnTouchEvent方法处理,onTouchEvent中主要是判断是执行点击事件还是长按事件,如果没有消耗掉事件的话事件抛给父控件或者结束事件(无父控件时结束事件)。

7226     public boolean dispatchTouchEvent(MotionEvent event) {
7227         if (mInputEventConsistencyVerifier != null) {
7228             mInputEventConsistencyVerifier.onTouchEvent(event, 0);
7229         }
7230
7231         if (onFilterTouchEventForSecurity(event)) {
7232             //noinspection SimplifiableIfStatement
7233             ListenerInfo li = mListenerInfo;//包括onTouch,onClick和onLongClick事件
7234             if (li != null && li.mOnTouchListener != null && (mViewFlags & ENABLED_MASK) == ENABLED
7235                     && li.mOnTouchListener.onTouch(this, event)) {
7236                 return true;
7237             }
7238
7239             if (onTouchEvent(event)) {
7240                 return true;
7241             }
7242         }
7243
7244         if (mInputEventConsistencyVerifier != null) {
7245             mInputEventConsistencyVerifier.onUnhandledEvent(event, 0);
7246         }
7247         return false;
7248     }

转载于:https://www.cnblogs.com/qcjd/p/9324867.html

android(八)、触摸事件分发相关推荐

  1. 【Android】Touch事件分发

    题外话: /*** A ViewGroup is a special view that can contain other views* (called children.) The view gr ...

  2. android 抽屉侧滑冲突,利用DrawerLayout和触摸事件分发实现抽屉侧滑效果

    本文实例为大家分享了DrawerLayout和触摸事件分发实现抽屉侧滑效果的具体代码,供大家参考,具体内容如下 效果展示 还是看代码实在,直接上菜了. 1.MainActivity的代码: publi ...

  3. Android 系统(74)---Android手势触摸事件的分发和消费机制

    Android手势&触摸事件的分发和消费机制 在Android 客户端开发过程中,经常会遇到手势事件的处理,本篇博文讲一下本人对touch事件处理机制的一些理解,希望对一些初级开发者有所帮助. ...

  4. android方向触摸事件,Android触摸事件传递机制,这一篇就够了

    整个触摸事件牵涉到的是,Activity,View,ViewGroup三者的传递机制. 这个触摸事件就是从外层往内层一层层的传递. 整个传递机制,分为3个步骤:分发,拦截,和消费. 1. 触摸事件的类 ...

  5. 总结系列——聊聊android里面的事件分发

    前言 android 中的事件分发,已经是老生常谈的问题了,一般都是从Activity开始聊,但是真的是这样吗?hongyang大神之前一篇纠错,解决了我一个很大的困惑,也算是扫盲吧,这篇文章,是从头 ...

  6. android触摸事件触摸点坐标,Android开发——触摸事件TouchEvent详解及其应用

    2020.8.8 Activity的功能: 1.管理界面的生命周期 2.接收事件(触摸事件) 一.触摸事件传递解析 touch事件的传递.png 当手指按下时会首先调用onUserInteractio ...

  7. android touch事件无反应,android的touch事件分发响应机制

    想要弄明白android的touch事件分发响应机制需要先充分理解一下几个知识点: View和ViewGroup touch事件的构成 ViewGroup如何对事件分发和拦截 View和ViewGro ...

  8. Android笔记:触摸事件的分析与总结----多点触控

       其他相关博文:    Android笔记:触摸事件的分析与总结----MotionEvent对象    Android笔记:触摸事件的分析与总结----TouchEvent处理机制     An ...

  9. android触摸事件分发,Android 事件分发机制

    Android 事件分发机制一直让人头痛,之前也是面向 GitHub 编程得过且过.今天下定决心了解一下,以便后面自己定制 View 效果.Android 触摸事件有三个基本类型:ACTION_DOW ...

  10. Android触摸事件分发

    Android的触摸分发机制和如何实现拦截 Android的触摸分发机制和如何实现拦截 前言 触摸事件的分发 情景分析 总结 前言 在自定义ViewGroup中,有时候需要实现触摸事件拦截,比如Lis ...

最新文章

  1. html网页在指定位置嵌入表格,网页制作中表格的主要作用 网页制作中插入表格怎么调整位置...
  2. 怎么知道 网站是否直接明文保存密码_忘记账号密码 浏览器记住了 怎么找回密码?...
  3. 1.4-puppet配置证书
  4. html中英文混排,EndNote中英文混排时et al和等的3种解决方法 | 科研动力
  5. 关于对话框DoModal()函数调用失败的原因分析
  6. Java并发:线程池详解(ThreadPoolExecutor)
  7. 文本分类模型_文本分类模型之TextCNN
  8. UVa 1626 (输出方案) Brackets sequence
  9. ios中base64编码
  10. oauth_client_details的值怎么添加_PowerBI计算列与度量值
  11. vue 组件 - 非单文件组件
  12. 5G时代的无线宽带新技术
  13. android-async-http框架之与服务器进行数据交互
  14. powerdesigner中将表的name在生成建表sql时生成注释
  15. flask如何查询mysql_如何从Flask应用中的MySQL查询返回数据?
  16. java历save_日历【savejava吧】_百度贴吧
  17. 英语测试用什么软件有哪些,学习英语的软件哪个好 什么比较好用
  18. c++ 取模和求余运算
  19. Jsp 页面白页问题
  20. MySQL数据库课程设计_什么是数据库?如何学习数据库?

热门文章

  1. 远程升级stm32程序_艾拉比智能成为意法半导体STM32战略合作伙伴
  2. Oauth2与授权管理
  3. php让符合条件的复选框选中,多条件查询(复选框条件)
  4. JavaWeb——拦截器HandlerInterceptor
  5. 新手必读:PhoneGap入门六大问题
  6. 【java学习之路】(java SE篇)004.面向对象基础入门part1
  7. 计算机技能比赛范文,计算机技能大赛策划书范文.doc
  8. 页面查询条件选框被隐藏的问题
  9. 用法 the_英语冠词:不定冠词a,an和定冠词the的用法
  10. html页面上的表格导出为excel文件,Web html table export to excel 网页上的表格数据导出到Excel文件中 使用心得...