关于dispatchTouchEvent, onInterceptTouchEvent, onTouchEvent

关于dispatchTouchEvent, onInterceptTouchEvent, onTouchEvent的分发机制浅析

虽说这个问题不是很难...动动手就能看出答案...但是似乎不太容易理解...几次尝试把这个问题说明白....但是好像感觉说不明白....(顿时想起了那句话----说不明白就是自己还不明白! 我怎么可能不明白..so)

这里面牵扯到Activity的dispatchTouchEvent, onTouchEvent以及ViewGroup的dispatchTouchevent, onInterceptTouchEvent, onTouchEvent还有View的dispatchTouchEvent, onTouchEvent

(别嫌我..多一嘴View没有onInterceptTouchEvent).

前沿: 知识储备...默认只有View的onTouchEvent返回true其它都返回false;  true意味着本View需要处理(ViewGroup也是View), false则代表不处理继续分发.

0. 这个事件的执行顺序是activity的dispatchTouchEvent先接收到down事件..然后由父往子执行....如果期间没有视图的onTouchEvent返回true的, 那不好意思..只能由activity的onTouchEvent执行了(自个走完down, move, up)

06-10 17:08:29.535: V/Activity(3174): dispatchTouchEvent DOWN

06-10 17:08:29.535: V/ViewGroup1(3174): onInterceptTouchEvent DOWN

06-10 17:08:29.535: V/ViewGroup2(3174): onInterceptTouchEvent DOWN

06-10 17:08:29.535: V/Activity(3174): onTouch DOWN

06-10 17:08:29.535: V/Child(3174): onTouchEvent DOWN

06-10 17:08:29.535: V/ViewGroup2(3174): onTouchEvent DOWN

06-10 17:08:29.535: V/ViewGroup1(3174): onTouchEvent DOWN

06-10 17:08:29.535: V/Activity(3174): onTouchEvent DOWN

06-10 17:08:29.565: V/Activity(3174): dispatchTouchEvent MOVE

06-10 17:08:29.565: V/Activity(3174): onTouchEvent MOVE

06-10 17:08:29.575: V/Activity(3174): dispatchTouchEvent MOVE

06-10 17:08:29.575: V/Activity(3174): onTouchEvent MOVE

06-10 17:08:29.575: V/Activity(3174): dispatchTouchEvent UP

06-10 17:08:29.575: V/Activity(3174): onTouchEvent UP

这么多...咱就先抛开所有的dispatchTouchEvent先来分析onInterceptTouchEvent和onTouchEvent

返回栏目页:http://www.bianceng.cnhttp://www.bianceng.cn/OS/extra/

时间: 2024-09-21 13:37:32

关于dispatchTouchEvent, onInterceptTouchEvent, onTouchEvent的相关文章

Andorid-15k+的面试题。

andorid开发也做了3年有余了,也面试很多加企业,借此机会分享一下,我们中遇到过的问题以及解决方案吧,希望能够对正在找工作的andoird程序员有一定的帮助. 特别献上整理过的50道面试题目 1.listView的优化方式 重用convertView viewHolder static class viewHolder 在列表里面有图片的情况下,监听滑动不加载图片 多个不同布局,可以创建不同的viewHolder和convertView进行重用 2.listView展示数据几种形式 从sql

Android View 事件分发机制详解_Android

Android开发,触控无处不在.对于一些 不咋看源码的同学来说,多少对这块都会有一些疑惑.View事件的分发机制,不仅在做业务需求中会碰到这些问题,在一些面试笔试题中也常有人问,可谓是老生常谈了.我以前也看过很多人写的这方面的文章,不是说的太啰嗦就是太模糊,还有一些在细节上写的也有争议,故再次重新整理一下这块内容,十分钟让你搞明白View事件的分发机制. 说白了这些触控的事件分发机制就是弄清楚三个方法,dispatchTouchEvent(),OnInterceptTouchEvent(),o

图片- Android ListView嵌套GridView点击事件的分发!!!!

问题描述 Android ListView嵌套GridView点击事件的分发!!!! 现在我在实现一个类似朋友圈的功能,布局需要用到ListView嵌套GridView.我也知道这样用不是太好,但这样能够实现需求所以就这样写了.如果哪位有更好的替换的方法,还请赐教.例如:我现在每行显示三张图片,但现在只有一张图片,所以就会有两张图片的位置会空出来.我为了要实现点击图片还能够看大图设置了GridView的onitemclick事件.问题来了,当我点击空白部分的时候,结果还是触发了GridView的

Android事件传递小结

Android中的Touch事件 Android中的touch事件都封装在MotionEvent中,包括ACTION_UP, ACTION_DOWN, ACTION_MOVE等,处理touch事件的主要有三个方法 onTouchEvent(): 事件消费 dispatchTouchEvent(): 事件分发 onInterceptTouchEvent(): 事件拦截 这三个方法的返回值都是boolean类型的. touch事件测试 首先建立三个嵌套的view,由内向外依次为TopView(红色)

Android中事件传递机制的总结

事件传递虽然算不上某个单独的知识点,但是在实际项目开发中肯定会碰到,如果不明白其中的原理,那在设计各种滑动效果时就会感到很困惑. 关于事件的传递,我们可能会有以下疑问: 事件是如何传递的 事件是如何处理的 自定义view的时候,事件也冲突了怎么解决 带着这三个疑问,我们来总结一下事件传递机制是怎么回事.   一.事件分发的原理: 1.事件是如何传递的: (1)首先由Activity分发,分发给根View,也就是DecorView(DecorView为整个Window界面的最顶层View) (2)

自定义View系列教程01--常用工具介绍

探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架(1)- 核心基础 Android多分辨率适配框架(2)- 原理剖析 Android多分辨率适配框架(3)- 使用指南 自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View

Android嵌套滑动机制NestedScrolling

这篇文章本来打算写在简书上的,但是由于页面不能富文本和markdown同时支持,看到Gemini大神的文章中酷炫.赏心悦目的效果后果断放弃简书,看文章本来就会枯燥,如果再没有美观的效果,那岂不是要边看边睡? 互联网给了我们这么多选择,那我肯定选择体验最棒的. 具体效果可以对比一下:    说到Gemini,我也是这两天因为了解NestedScrolling时接触到的,粗略看了一下资料和文章浏览数,赞! 我的大神! 好,前番就到这了,开始正题NestedScrolling. 之前了解NestedS

Android View 事件分发机制详解

Android开发,触控无处不在.对于一些 不咋看源码的同学来说,多少对这块都会有一些疑惑.View事件的分发机制,不仅在做业务需求中会碰到这些问题,在一些面试笔试题中也常有人问,可谓是老生常谈了.我以前也看过很多人写的这方面的文章,不是说的太啰嗦就是太模糊,还有一些在细节上写的也有争议,故再次重新整理一下这块内容,十分钟让你搞明白View事件的分发机制. 说白了这些触控的事件分发机制就是弄清楚三个方法,dispatchTouchEvent(),OnInterceptTouchEvent(),o

Android View事件分发和消费源码简单理解

Android View事件分发和消费源码简单理解 前言: 开发过程中觉得View事件这块是特别烧脑的,看了好久,才自认为看明白.中间上网查了下singwhatiwanna粉丝的读书笔记,有种茅塞顿开的感觉. 很重要的学习方法:化繁为简,只抓重点. 源码一坨,不要指望每一行代码都看懂.首先是没必要,其次大量非关键代码会让你模糊真正重要的部分. 以下也只是学姐的学习成果,各位同学要想理解深刻,还需要自己亲自去看源码. 2.源码分析 由于源码实在太长,而且也不容易看懂,学姐这里就不贴出来了,因为没必