Android Touch事件传递机制详解
Android开发的朋友经常处理各种触摸事件,然而在触摸事件的传递过程中主要用到三个方法:dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()。相信这困扰了很多朋友,下面通过图文给大家介绍一下它们之间的传递过程。

工具/原料
- android
- android studio
方法/步骤
- 1
事件的起源:
我们都知道触摸事件是从Activity的dispatchTouchEvent方法开始的。再调用父类的super.dispatchTouchEvent(ev),事件向派发。

- 2
ViewGroup与View关系:View是android控件的最简单的一个类,所有的控件都直接或间接继承View,即ViewGroup继承View。View有两个回调函数dispatchTouchEvent和onTouchEvent;ViewGroup有三个回调函数dispatchTouchEvent、onTouchEvent和onInterceptTouchEvent。

- 3
dispatchTouchEvent事件说明:
dispatchTouchEvent只负责处理触摸事件的派发,事件由Activity的dispatchTouchEvent开始的。再执行父类的
super.dispatchTouchEvent(ev)事件向下派发。

- 4
onInterceptTouchEvent事件说明:
onInterceptTouchEvent是ViewGroup提供的方法,它的默认返回false表示不拦截事件,当返回true时表示拦截了事件,即自己处理消费。

- 5
onTouchEvent事件说明:
ViewGroup和View都有这个方法,onTouchEvent这个方法主要处理触摸事件的按下移动和弹起的操作,当返回为true时表示消费了这个事件,false则不消费,即返回上一层处理。

- 6
事件的传递过程:
Android中事件的传递过程都是从父布局传递到子布局,父布局可以有很多个,即ViewGroup-->ViewGroup-->View的过程,ViewGroup起到的是透传作用。

Android Touch事件传递机制详解的更多相关文章
- Android Touch事件传递机制详解 下
尊重原创:http://blog.csdn.net/yuanzeyao/article/details/38025165 资源下载:http://download.csdn.net/detail/yu ...
- Android Touch事件传递机制详解 上
最近总是遇到关于Android Touch事件的问题,如:滑动冲突的问题,以前也花时间学习过Android Touch事件的传递机制,可以每次用起来的时候总是忘记了,索性自己总结一下写篇文章避免以后忘 ...
- Android 的事件传递机制,详解
Android 的事件传递机制,详解 前两天和一个朋友聊天的时候.然后说到事件传递机制.然后让我说的时候,忽然发现说的不是非常清楚,事实上Android 的事件传递机制也是知道一些,可是感觉自己知道的 ...
- Android Touch事件传递机制 二:单纯的(伪生命周期)
转载于:http://blog.csdn.net/yuanzeyao/article/details/38025165 在前一篇文章中,我主要讲解了Android源码中的Touch事件的传递过程,现在 ...
- Android Touch事件传递机制 二:单纯的(伪生命周期) 这个清楚一点
转载于:http://blog.csdn.net/yuanzeyao/article/details/38025165 在前一篇文章中,我主要讲解了Android源码中的Touch事件的传递过程,现在 ...
- Android事件传递机制详解及最新源码分析——ViewGroup篇
版权声明:本文出自汪磊的博客,转载请务必注明出处. 在上一篇<Android事件传递机制详解及最新源码分析--View篇>中,详细讲解了View事件的传递机制,没掌握或者掌握不扎实的小伙伴 ...
- Android Touch事件传递机制 一: OnTouch,OnItemClick(监听器),dispatchTouchEvent(伪生命周期)
ViewGroup View Activity dispatchTouchEvent 有 有 有 onInterceptTouchEvent 有 无 无 onTouchEvent 有 有 有 例 ...
- Android touch 事件传递机制
前言: (1)在自定义view的时候经常会遇到事件拦截处理,比如在侧滑菜单的时候,我们希望在侧滑菜单里面有listview控件,但是我们希望既能左右滑动又能上下滑动,这个时候就需要对触摸的touch事 ...
- Android Touch事件传递机制通俗讲解
在讲正题之前我们讲一段有关任务传递的小故事,抛砖迎玉下: 话说一家软件公司,来一个任务,分派给了开发经理去完成: 开发经理拿到,看了一下,感觉好简单,于是 开发经理:分派给了开发组长 开发组长:分派给 ...
随机推荐
- 启动调试IIS时,vs无法在 Web 服务器上启动调试。Web 服务器未能找到请求的资源。 有关详细信息,请单击“帮助”。
问题截图 1.检查 是否设置了本地IIS 2.检查IIS端口是否为80 3.默认网站设置是否正确 可参考,查看网站绑定是否正确
- js框架设计1.4类型判断
这篇司徒大神介绍了很多js的 不靠谱类型判断.篇幅也是第一篇中最常的 ,经阅读后,以后一定要用框架的自带的类型判断,万万不可随便乱用js原生判断.
- SQL Server 2008 R2 企业版/开发版/标准版(中英文下载,带序列号)
一. 简体中文 1. SQL Server 2008 R2 Developer (x86, x64, ia64) – DVD (Chinese-Simplified) File Name: cn_sq ...
- iOS-OC-基本控件之UIPageControl
UIPageControl(页面控制器,就是桌面的那些小点点,每个点代表一个界面) 父类是 UIControl. iOS开发中常用的基本控件,主要和UIScrollView一起使用,比较常用的就是有些 ...
- Oracle 11g RAC停止和启动步骤
关闭前备份控制文件/参数文件: sqlplus / as sysdba alter database backup controlfile to '/home/oracle/control.ctl ...
- linux 学习 day1
- SQL SERVER中的扩展属性
以前在SQL SERVER建表时,总看到扩展属性,但一直未使用过.今天研究下: 增加扩展属性: 语法: sp_addextendedproperty [ @name = ] { 'property_n ...
- MyBatis - MyBatis使用log4j2显示sql和结果集
mybatis-config.xml <settings> <setting name="logImpl" value="LOG4J2" /& ...
- DDD~概念中的DDD(转)
概念中的DDD DDD: 领域驱动设计,它是对面向对象的的分析和设计(OOAD,Object Orient Analysis Design)的一个补充,对技术框架进行了分层规划,同时对每个类进行了策略 ...
- Some Link: Java Reflection
http://docs.oracle.com/javase/tutorial/reflect/index.html https://bugs.openjdk.java.net/browse/JDK-4 ...