`
elvajxw
  • 浏览: 107776 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Android开发——浅谈onInterceptTouchEvent、onTouchEvent与onTouch

阅读更多
转自:http://www.cnblogs.com/halzhang/archive/2010/08/18/1802611.html


一、onTouch

onTouch是View中OnTouchListener接口中的方法,处理View及其子类被touch是的事件处理。当然,前提是touch时间能够传递到指定的view。Q1:为什么会传递不到呢?

   1:   /**

   2:      * Interface definition for a callback to be invoked when a touch event is

   3:      * dispatched to this view. The callback will be invoked before the touch

   4:      * event is given to the view.

   5:      */

   6:     public interface OnTouchListener {

   7:         /**

   8:          * Called when a touch event is dispatched to a view. This allows listeners to

   9:          * get a chance to respond before the target view.

  10:          *

  11:          * @param v The view the touch event has been dispatched to.

  12:          * @param event The MotionEvent object containing full information about

  13:          *        the event.

  14:          * @return True if the listener has consumed the event, false otherwise.

  15:          */

  16:         boolean onTouch(View v, MotionEvent event);

  17:     }

二、onTouchEvent

onTouchEvent同样也是在view中定义的一个方法。处理传递到view 的手势事件。手势事件类型包括ACTION_DOWN,ACTION_MOVE,ACTION_UP,ACTION_CANCEL四种事件。

   1: /**

   2:  * Implement this method to handle touch screen motion events.

   3:  *

   4:  * @param event The motion event.

   5:  * @return True if the event was handled, false otherwise.

   6:  */

   7: public boolean onTouchEvent(MotionEvent event) {

   8:  ……

   9:  ……

  10: }

一旦onTouchEvent方法被调用,并返回true则这个手势事件就结束了,并不会向下传递到子控件。Q2:onTouchEvent什么时候被调用呢?

三、onInterceptTouchEvent

onInterceptTouchEvent是在ViewGroup里面定义的。Android中的layout布局类一般都是继承此类的。 onInterceptTouchEvent是用于拦截手势事件的,每个手势事件都会先调用onInterceptTouchEvent。

   1: public boolean onInterceptTouchEvent(MotionEvent ev) {

   2:         return false;

   3: }

此方法返回false,则手势事件会向子控件传递;返回true,则调用onTouchEvent方法。
分享到:
评论

相关推荐

    onInterceptTouchEvent和onTouchEvent调用关系详解

    在Android开发中,触摸事件处理是用户界面交互的基础。`onInterceptTouchEvent`和`onTouchEvent`是两个关键的方法,它们协同工作以处理触摸屏幕的动作。这篇文章将深入探讨这两个方法的调用关系及其在Android事件...

    安卓onTouchEvent上下左右滑动事件

    在Android开发中,触摸事件是用户与应用交互的重要方式,特别是在移动设备上。`onTouchEvent`是处理触摸事件的主要方法,它可以捕捉用户的点击、滑动等手势。本篇将详细讲解如何通过重写`onTouchEvent`来实现上下...

    Android onTouch事件传递机制

    在Android开发中,触摸事件处理是用户界面交互的关键部分,`onTouch`事件是其中的核心机制。本篇文章将深入探讨Android的`onTouch`事件传递机制,帮助开发者更好地理解和运用这一功能。 首先,Android的触摸事件...

    Android onTouchEvent事件中onTouch方法返回值(介绍)

    在Android开发中,触摸事件处理是用户界面交互的关键部分。`onTouchEvent` 是一个重要的方法,用于接收并处理用户对屏幕的触摸操作。本文将详细介绍`onTouchEvent`中`onTouch`方法的返回值及其影响。 `onTouchEvent...

    onclick与ontouch和scroll监听冲突的解决方法

    在Android开发中,我们经常会遇到各种事件监听器的冲突问题,特别是`onclick`、`ontouch`和`scroll`监听器。这些事件在用户交互时可能会同时触发,导致不期望的行为,例如,当用户尝试滚动页面时,点击事件却意外...

    android click 和onTouch 事件处理机制.

    在Android开发中,点击事件(click)和触摸事件(onTouch)是两种常见的用户交互处理方式,它们在处理用户屏幕操作时起到了至关重要的作用。理解它们的事件处理机制是构建高效且响应良好的用户界面的关键。 首先,...

    Android中丰富多彩的onTouch事件.rar

    在Android开发中,触摸事件是用户与应用交互的重要方式,`onTouch`事件处理机制是这一过程中的核心。本文将深入探讨`onTouch`事件在Android中的应用,以及如何利用它来实现丰富多彩的用户交互。 一、`MotionEvent`...

    Android中touch事件传递测试demo

    onInterceptTouchEvent和onTouchEvent调用时序详解 测试demo 详细介绍请移步:http://blog.csdn.net/yiranxinshou/article/details/9201833

    onTouch demo

    `onTouch`事件是Android系统提供的一种处理触摸屏幕事件的方式,它允许开发者精确地控制用户与界面元素的交互。本示例"onTouch demo"旨在帮助开发者理解并解决常见的触摸事件冲突问题,并在面试中能够清晰地阐述`...

    两个重叠组件触摸事件冲突解决

    在Android开发中,UI设计时常会遇到两个或多个组件重叠的情况,这可能导致触摸事件的冲突问题。本文将深入探讨Android中的OnTouch事件分发机制,并提供解决方案来处理这种冲突。 首先,我们要理解Android的事件分发...

    onTouch测试

    在Android开发中,触摸事件是用户与应用交互的重要方式,`onTouch`是处理这些触摸事件的主要接口之一。本文将深入探讨`onTouch`事件传递机制,并通过`TestActivity`这个示例来解析其实现。 Android系统使用一个事件...

    dispatch、onIntercept、onTouch三者对MotionEvent的分发、拦截机制Demo

    Title : dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent三者对MotionEvent的分发、拦截机制分析 Author: yaong Category:自己做的Demo Tips : 三个自定义View,依次嵌套,并各自覆写拦截、监听方法,通过...

    Android从源码的角度彻底理解事件分发机制的解析(上)

    Android事件分发机制是Android UI开发中的核心部分,它决定了用户交互事件如何在View和ViewGroup之间传递和处理。本文将从源码角度深入解析这一机制,帮助开发者更全面地理解其工作原理。 首先,我们需要了解事件...

    Android滑动冲突解决的例子

    在Android开发中,滑动冲突是一个常见的问题,尤其是在设计复杂用户界面时。滑动冲突通常发生在两个或多个可滑动的视图(如ScrollView、HorizontalScrollView、ViewPager等)重叠或者相邻时,用户可能尝试同时在这些...

    Android 点击事件demo

    Eclipse的项目配置、布局编辑和代码编写方式与Android Studio略有不同,熟悉这些能帮助开发者应对各种开发环境。 通过这个"Android 点击事件demo",开发者不仅可以学习到基本的点击事件处理,还能进一步掌握Android...

    android事件的分发

    本文将深入探讨Android事件的分发机制,特别是关于`onTouch`事件的处理。Android事件分发流程主要包括三个关键步骤:捕捉(Capture)、分发(Dispatch)和消费(Consume),这在Android的View层次结构中进行。我们将...

    android面试题集锦(珍藏)

    在Android开发中,事件分发机制是非常重要的一个概念。理解这一机制有助于开发者更好地处理用户交互,并且能够优化应用性能。本节将深入探讨Android事件分发机制的核心概念。 #### 二、事件分发流程 **1. 事件产生...

    android面试题目整理

    Android面试中的事件分发机制是开发者必须掌握的关键知识点之一,涉及到UI交互的底层逻辑。事件分发主要处理用户与屏幕的交互,例如点击、滑动等操作。在Android中,事件分发涉及到MotionEvent的传递流程,从...

    Android深入研究Touch事件demo

    在Android开发中,触摸事件(Touch Event)是用户与设备交互的重要部分,它涉及到Activity、View及ViewGroup之间复杂的事件分发机制。本篇将深入探讨Android中的触摸事件处理,包括事件的产生、分发、拦截以及如何...

    Android事件的分发机制详解

    Android事件的分发机制是Android UI交互中的核心概念,它决定了用户对屏幕上的控件进行触摸操作时,事件如何从顶级视图逐级传递到具体的处理者。在深入讲解之前,我们先理解两个基本概念:View和ViewGroup。View是...

Global site tag (gtag.js) - Google Analytics