Android ViewGroup onInterceptTouchEvent

public
boolean onInterceptTouchEvent (MotionEvent ev)

  Implement this method to intercept all touch screen motion events. This
allows you to watch events as they are dispatched to

your children, and take ownership of the current gesture at any point.

  Using this function takes some care, as it has a fairly complicated
interaction with View.onTouchEvent(MotionEvent),
and using it

requires implementing that method as well as this one in the correct way.
Events will be received in the following order:

  1)You will receive the down event here.

  2)The down event will be handled either by a child of this view group, or
given to your own onTouchEvent() method to handle;

this means you should implement onTouchEvent() to return true, so you will
continue to see the rest of the gesture (instead of

looking for a parent view to handle it). Also, by returning true from
onTouchEvent(), you will not receive any following events in

onInterceptTouchEvent() and all touch processing must happen in
onTouchEvent() like normal.

  3)For as long as you return false from this function, each following event
(up to and including the final up) will be delivered

first here and then to the target‘s onTouchEvent().

  4)If you return true from here, you will not receive any following events:
the target view will receive the same event but with

the action ACTION_CANCEL,
and all further events will be delivered to your onTouchEvent() method and no
longer appear here.

返回false(默认),则所有事件从onInterceptTouchEvent 再到onTouchEvent

返回true,则所有事件只传递到onTouchEvent

Android ViewGroup onInterceptTouchEvent,码迷,mamicode.com

时间: 2024-10-23 18:30:49

Android ViewGroup onInterceptTouchEvent的相关文章

Android中onInterceptTouchEvent与onTouchEvent

onInterceptTouchEvent: onInterceptTouchEvent是在ViewGroup里面定义的.Android中的layout布局类一般都是继承此类的.onInterceptTouchEvent是用于拦截手势事件的,每个手势事件都会先调用onInterceptTouchEvent. onTouchEvent: onTouchEvent同样也是在view中定义的一个方法.处理传递到view 的手势事件.手势事件类型包括ACTION_DOWN,ACTION_MOVE,ACT

android ViewGroup getChildDrawingOrder与 isChildrenDrawingOrderEnabled()

getChildDrawingOrder与 isChildrenDrawingOrderEnabled()是属于ViewGroup的方法. getChildDrawingOrder 用于 返回当前迭代子视图的索引.就是说 获取当前正在绘制的视图索引.  如果需要改变ViewGroup子视图绘制的顺序,则需要重载这个方法.并且需要先调用 setChildrenDrawingOrderEnabled(boolean) 方法来启用子视图排序功能. isChildrenDrawingOrderEnabl

android ViewGroup和View触屏基础事件OnTouch处理

分发事件:dispatchTouchevent 截断事件:interceptTouchEvent 触摸事件:OnTouch 父视图的分发事件返回true,父视图处理触摸事件事件,父视图触摸事件返回false,由所在的activity处理:返回true,仍然可以接收到触摸事件: 父视图的分发事件返回false,则截断事件触发: 截断事件返回true,自己处理触摸事件,不交由子视图处理: 截断事件返回false,子视图分发事件: 截断事件false,处理事件true,子视图处理事件为true,则父视

Android ViewGroup 触摸事件传递机制

引言 上一篇博客我们学习了Android View 触摸事件传递机制,不了解的同学可以查看Android View 触摸事件传递机制.今天继续学习Android触摸事件传递机制,这篇博客将和大家一起探讨ViewGroup的触摸事件传递机制. 示例 示例代码如下: public class MainActivity extends ActionBarActivity { private String TAG = "MainActivity"; private MyViewGroup pa

Android ViewGroup触摸事件拦截详解

前言 在自定义ViewGroup中,有时候需要实现触摸事件拦截,比如ListView下拉刷新就是典型的触摸事件拦截的例子.触摸事件拦截就是在触摸事件被parent view拦截,而不会分发给其child,即使触摸发生在该child身上.被拦截的事件会转到parent view的onTouchEvent方法中进行处理.但是这个交互过程还是挺复杂的,有多种情况,今天我们就来分析一下吧.这篇分析文章已经放了一段时间了,如果有任何问题请高人指出. 触摸事件的分发 简单来说触摸事件的分发会经过这么几个顺序

Android ViewGroup触摸屏事件派发机制详解与源码分析

PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN.因为CSDN也支持MarkDown语法了,牛逼啊! [工匠若水 http://blog.csdn.net/yanbober] 该篇承接上一篇<Android View触摸屏事件派发机制详解与源码分析>,阅读本篇之前建议先阅读. 1 背景 还记得前一篇<Android View触摸屏事件派发机制详解与源码分析>中关于透过源码继续进阶实例验证模块中存在的点击Button却触发了LinearLayout的事

(转)Android ViewGroup事件分发机制

3.关于拦截 1.如何拦截 上面的总结都是基于:如果没有拦截:那么如何拦截呢? 复写ViewGroup的onInterceptTouchEvent方法: [java] view plain copy @Override public boolean onInterceptTouchEvent(MotionEvent ev) { int action = ev.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: //如果你觉得需

Android ViewGroup事件分发机制

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/39102591,本文出自[张鸿洋的博客] 上一篇已经完整的解析了Android View的事件分发机制,今天给大家代码ViewGroup事件分发的源码解析~~凡是自定义ViewGroup实现各种滑动效果的,不可避免的会出现很多事件的冲突,对ViewGroup事件分发机制的了解,也有益于大家了解冲突产生的原因,以及对冲突进行处理~ 1.案例 首先我们接着上一篇的代码,在代码中添加一

Android ViewGroup使用小结

ViewGroup定义 在api中是这么描写叙述ViewGroup的:A ViewGroup is a special view that can contain other views. 依据意思我们能够明确.在ViewGroup中能够包括其它UI控件.包括我们的自己定义控件 优势及用处 我们了解UI控件最大的目的是使用它.而要了解控件.必须明确该控件的长处. ViewGroup在Android的UI控件中相对复杂,它的自己定义程度非常高.借助declare-styleable自己定义控件属性