android 事件传递机制
有三个方法:
dispatchTouchEvent
onInterceptTouchEvent
onTouchEvent
首先:A的dispatchTouchEvent-A的onInterceptTouchEvent
B的dispatchTouchEvent B的onInterceptTouchEvent 。。。
之后呢,如果不在传递了,那么就最后一个元素的onTouchEvent
往上传递,B的onTouchEvent –A的onTouchEvent
中间各个方法返回值不同,传递过程就会中断。总结如下:
dispatchTouchEvent
不管是返回true, 还是false,都不会再走 自己的onInterceptTouchEvent onTouchEvent ,也不会向下传递
只有返回super…..才可以继续 onInterceptTouchEvent onTouchEvent
然后往下传递
如果返回true ,那么以后的事件都由dispatchTouchEvent 处理,不会再交给onTouchEvent
如果返回false,那么以后的事件都由dispatchTouchEvent 处理,不会再交给上层 onTouchEvent ,不管上层返回true或false,都要它处理。
onInterceptTouchEvent
就是配合dispatchTouchEvent 的,不想向下分发就拦截掉,直接执行自己的onTouchEvent
返回true 则接执行自己的onTouchEvent 不想向下分发
返回false 和返回super…..一样
onTouchEvent
返回true 表示当前这个控件自己处理touch时间,包括以后的move ,up ,传递过程中,如果上一级有其他的onTouchEvent ,那么其他的只执行一次,以后直接分发到这一级之后直接调用onTouchEvent.
返回 false 和返回super 一样 ,自己不处理
这个事情我算是搞明白了,看了无数篇文章,最后搞明白还是自己动手写的demo,很简单的demo,以后知道了,想要获取一些真理,还是要动手实践来的正确。自己动手印象深刻。
以后这种事情,就自己动手去打断点,打log,去看。追求真理,追求知识,不要偷懒,不要嫌麻烦。
android 事件传递机制的更多相关文章
- Android事件传递机制(转)
Android事件构成 在Android中,事件主要包括点按.长按.拖拽.滑动等,点按又包括单击和双击,另外还包括单指操作和多指操作.所有这些都构成了Android中的事件响应.总的来说,所有的事件都 ...
- Android事件传递机制详解及最新源码分析——ViewGroup篇
版权声明:本文出自汪磊的博客,转载请务必注明出处. 在上一篇<Android事件传递机制详解及最新源码分析--View篇>中,详细讲解了View事件的传递机制,没掌握或者掌握不扎实的小伙伴 ...
- Android事件传递机制详解及最新源码分析——View篇
摘要: 版权声明:本文出自汪磊的博客,转载请务必注明出处. 对于安卓事件传递机制相信绝大部分开发者都听说过或者了解过,也是面试中最常问的问题之一.但是真正能从源码角度理解具体事件传递流程的相信并不多, ...
- Android事件传递机制详解及最新源码分析——Activity篇
版权声明:本文出自汪磊的博客,转载请务必注明出处. 在前两篇我们共同探讨了事件传递机制<View篇>与<ViewGroup篇>,我们知道View触摸事件是ViewGroup传递 ...
- Android事件传递机制总结
Android中控件的分类 Activity dispatchTouchEvent(MotionEvent e) onTouchEvent(MotionEvent e) ViewGroup(View) ...
- Android事件传递机制
http://blog.csdn.net/awangyunke/article/details/22047987 1)public boolean dispatchTouchEvent(MotionE ...
- android事件传递机制以及onInterceptTouchEvent()和onTouchEvent()总结
老实说,这两个小东东实在是太麻烦了,很不好懂,我自己那api文档都头晕,在网上找到很多资料,才知道是怎么回事,这里总结一下,记住这个原则就会很清楚了: 1.onInterceptTouchEvent( ...
- android事件传递机制以及onInterceptTouchEvent()和onTouchEvent()详解二之小秘与领导的故事
总结的不是很好,自己也有点看不懂,正好现在用到了,研究了一个,再次总结,方便大家查看 总则: 1.onInterceptTouchEvent中有个Intercept,这是什么意思呢?她叫拦截,你大概知 ...
- android 事件传递机制(1)
在项目中,经常遇到事件冲突,ScrollView,ViewPager滑动卡顿等情况,比如:onClick和onLongClick事件冲突,dispatchTouchEvent,onInterceptT ...
随机推荐
- 【JavaScript 封装库】BETA 2.0 测试版发布!
/* 源码作者: 石不易(Louis Shi) 联系方式: http://www.shibuyi.net =============================================== ...
- hdu-2852 KiKi's K-Number---二分+树状数组
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2852 题目大意: 题意: 给出三种操作, 0 在容器中插入一个数. 1 在容器中删 ...
- POJ-1469 COURSES---二分图最大匹配--匈牙利算法
题目链接: https://vjudge.net/problem/POJ-1469 题目大意: 给你p门课程和n个学生,一个学生可以选0门,1门,或者多门课程,现在要求一个由p个学生组成的集合,满足下 ...
- 四大CPU体系结构ARM、X86/Atom、MIPS、PowerPC
http://blog.csdn.net/wangjianno2/article/details/52140936 RISC(reduced instruction set computer,精简指令 ...
- Codeforces 760A Petr and a calendar
题目链接:http://codeforces.com/problemset/problem/760/A 题意:日历需要多少列. #include <bits/stdc++.h> using ...
- DP上课覆盖知识点,POJ(1513)
题目链接:http://poj.org/problem?id=1513 解题报告: 思路: 知识点从第二个开始扫,递推表达式是:minlec[i]=min(minlec[k])+1,并且要保证,tim ...
- 【转】Android的setTag
前言 首先我们要知道setTag方法是干什么的,SDK解释为 Tags Unlike IDs, tags are not used to identify views. Tags are essent ...
- CUDA memory
原文链接 CUDA存储器类型: 每个线程拥有自己的register and loacal memory; 每个线程块拥有一块shared memory; 所有线程都可以访问global memory; ...
- CentOS6.5 配置IP的两种方式
1.dhcp动态获取ip 编辑配置文件 /etc/sysconfig/network-scripts/ifcfg-eth0 ,配置如下: [root@localhost ~]# vi /etc/sys ...
- oracle: listener.ora 、sqlnet.ora 、tnsnames.ora的配置及例子
1.解决问题:TNS或者数据库不能登录. 最简单有效方法:使用oracle系统提供的工具 netca 配置(把原来的删除掉重新配置) $netca 2.然而,仍有疑问:如何指定'l ...