ViewGroup onInterceptTouchEvent,ViewGroup onTouchEvent,View onTouchEvent执行顺序说明
今天抽出了一些时间实践了viewgroup和view的触摸事件顺序,之前也试过,总是忘记,今天记下笔记说明一下
首先 onInterceptTouchEvent只会出现在viewgroup中,view中是没有此方法的。看下官方给出onInterceptTouchEvent返回值的解释
Return true to steal motion events from the children and have
* them dispatched to this ViewGroup through onTouchEvent().
* The current target will receive an ACTION_CANCEL event, and no further
* messages will be delivered here.
意思大致上说如果返回true的话证明viewgroup消费了此手势的一系列事触摸事件(一般执行顺序 down,move,up),view 任何一个触摸事件都不会执行到ontouch方法中
(注意此ontouch方法是子view的哦,并不是viewgroup的)。
1. onInterceptTouchEvent返回true
当onInterceptTouchEvent 执行了down方法后,接下来的move,up等事件也不会通过此方法了,都会交给viewgroup的ontouch去处理。如果viewgroup的ontouch事件返回true 接下来的 move,up等事件也都被viewgroup 的ontouch方法拦截到,如果返回false的话,也就能拦截到down事件了。
2.onInterceptTouchEvent返回false
(1) 子View的onTouchEvent返回true
ViewGroup的onInterceptTouchEvent和子view onTouchEvent会接收到接下来的所有消息
ViewGroup的onTouchEvent不会接收到任何消息
(2) 子View的onTouchEvent返回false 并且 ViewGroup的onTouchEvent返回false 执行结果如下:
ViewGrouop onInterceptTouchEvent(13331): Action Down
View onTouchEvent(13331): Action Down
ViewGrouop onTouchEvent(13331): Action Down
(3) 子View的onTouchEvent返回false 并且 ViewGroup的onTouchEvent返回true 执行结果如下:
ViewGrouop onInterceptTouchEvent: Down
View onTouchEvent: Down
ViewGrouop onTouchEvent: Down
ViewGrouop onTouchEvent: Move
ViewGrouop onTouchEvent: Up
上述就是ViewGroup onInterceptTouchEvent,ViewGroup onTouchEvent,View onTouchEvent返回值不用所回调函数的顺序
ViewGroup onInterceptTouchEvent,ViewGroup onTouchEvent,View onTouchEvent执行顺序说明的更多相关文章
- UIViewController的生命周期及iOS程序执行顺序 和ios6 处理内存警告
当一个视图控制器被创建,并在屏幕上显示的时候. 代码的执行顺序1. alloc 创建对象,分配空间2.init (initWithN ...
- Android中onInterceptTouchEvent、dispatchTouchEvent及onTouchEvent的调用顺序及内部原理
在Android中需要经常对用户手势进行判断,在判断手势时需要精细的分清楚每个触摸事件以及每个View对事件的接收情况,在View,ViewGroup,Activity中都可以接收事件,在对事件进行处 ...
- 自定义控件(视图)2期笔记14:自定义视图之View事件分发 dispatchTouchEvent,onTouch,onTouchEvent,onClick逻辑顺序过程
1. 这里我们先从案例角度说明dispatchTouchEvent,onTouch,onTouchEvent,onClick逻辑顺序过程: (1)首先我们重写一个MyButton 继承自 Button ...
- 深入Android开发之--理解View#onTouchEvent
一:前言 View是Android中最基本的UI单元. 当一个View接收到了触碰事件时,会调用其onTouchEvent方法.方法声明如下: ? 1 2 3 4 5 6 7 /** * Imple ...
- Android ViewGroup onInterceptTouchEvent
public boolean onInterceptTouchEvent (MotionEvent ev) Implement this method to intercept all touch s ...
- SQL 语句与性能之执行顺序
select * , t3.Name from t1 left join t2 on t1.sysno = t2.Asysno left join t3 on t3.sysno = t2.Bsysno ...
- UITableView代理方知多少+执行顺序
一.前言 iOS中UITableView是最常用的一个控件.看了一下UITableView的代理:UITableViewDelegate 和 UITableViewDataSource.其中UITab ...
- Unity3D事件函数的执行顺序 - 包含渲染等模块的完整版,中英文对照
原文地址: http://www.cnblogs.com/ysdyaoguai/p/3746828.html In Unity scripting, there are a number of eve ...
- ASP.NET MVC ActionFilterAttribute的执行顺序
http://diaosbook.com/Post/2014/6/3/execution-order-of-actionfilter-aspnet-mvc ASP.NET MVC里面我们要自定义Act ...
随机推荐
- 使用python发送邮件
最近需要做一个功能,统计bug的数量,然后发邮件给指定人,所有就先要了解一下使用python发送邮件 代码如下: #coding: utf-8 import smtplib from email.MI ...
- oracle以逗号分隔查询结果列表
select wmsys.wm_concat(id) from table_name where id >= 5000 and id < 6000
- hdoj1160 DP--LIS
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1160 思路: 又是一道LIS的应用题,先预处理,按照w从小到大排列,那么原问题就转变成求该排列的LIS ...
- 各种replace待续
http://blog.163.com/chenjie_8392/blog/static/439339842010513128139/
- 数字三角形 · Triangle
从上到下用DP. [抄题]: 给定一个数字三角形,找到从顶部到底部的最小路径和.每一步可以移动到下面一行的相邻数字上. 比如,给出下列数字三角形: [ [2], [3,4], [6,5,7], [4, ...
- 算法笔记_067:蓝桥杯练习 算法训练 安慰奶牛(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路.道路被用来连接N个牧场,牧场被连续地编号为1到N.每一个牧场都是 ...
- js记录
--获取后缀名,结果 .jpg var extName = "/upload/head_img/20150902102539.jpg";var ta = extName.subst ...
- sql标量值函数,将汉字转化为拼音,无音标
USE [db_Test]GO SET ANSI_NULLS ONGO SET QUOTED_IDENTIFIER ONGO create function [dbo].[fn_GetPinyin]( ...
- @RequestMapping 介绍
RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径. RequestMapping注解有六个属性,下面我们把她 ...
- code1002 搭桥
最小生成树 每读入一个城市,把他与之前的所有城市做一次link() link的内容: 1.如果两个城市直接相连,合并他们的集合(并查集)2.如果两个城市可以搭桥,添加一条边来连接.如果不可以搭桥,什么 ...