转自: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方法。
分享到:
相关推荐
在Android开发中,触摸事件处理是用户界面交互的基础。`onInterceptTouchEvent`和`onTouchEvent`是两个关键的方法,它们协同工作以处理触摸屏幕的动作。这篇文章将深入探讨这两个方法的调用关系及其在Android事件...
在Android开发中,触摸事件是用户与应用交互的重要方式,特别是在移动设备上。`onTouchEvent`是处理触摸事件的主要方法,它可以捕捉用户的点击、滑动等手势。本篇将详细讲解如何通过重写`onTouchEvent`来实现上下...
在Android开发中,触摸事件处理是用户界面交互的关键部分,`onTouch`事件是其中的核心机制。本篇文章将深入探讨Android的`onTouch`事件传递机制,帮助开发者更好地理解和运用这一功能。 首先,Android的触摸事件...
在Android开发中,触摸事件处理是用户界面交互的关键部分。`onTouchEvent` 是一个重要的方法,用于接收并处理用户对屏幕的触摸操作。本文将详细介绍`onTouchEvent`中`onTouch`方法的返回值及其影响。 `onTouchEvent...
在Android开发中,我们经常会遇到各种事件监听器的冲突问题,特别是`onclick`、`ontouch`和`scroll`监听器。这些事件在用户交互时可能会同时触发,导致不期望的行为,例如,当用户尝试滚动页面时,点击事件却意外...
在Android开发中,点击事件(click)和触摸事件(onTouch)是两种常见的用户交互处理方式,它们在处理用户屏幕操作时起到了至关重要的作用。理解它们的事件处理机制是构建高效且响应良好的用户界面的关键。 首先,...
在Android开发中,触摸事件是用户与应用交互的重要方式,`onTouch`事件处理机制是这一过程中的核心。本文将深入探讨`onTouch`事件在Android中的应用,以及如何利用它来实现丰富多彩的用户交互。 一、`MotionEvent`...
onInterceptTouchEvent和onTouchEvent调用时序详解 测试demo 详细介绍请移步:http://blog.csdn.net/yiranxinshou/article/details/9201833
`onTouch`事件是Android系统提供的一种处理触摸屏幕事件的方式,它允许开发者精确地控制用户与界面元素的交互。本示例"onTouch demo"旨在帮助开发者理解并解决常见的触摸事件冲突问题,并在面试中能够清晰地阐述`...
在Android开发中,UI设计时常会遇到两个或多个组件重叠的情况,这可能导致触摸事件的冲突问题。本文将深入探讨Android中的OnTouch事件分发机制,并提供解决方案来处理这种冲突。 首先,我们要理解Android的事件分发...
在Android开发中,触摸事件是用户与应用交互的重要方式,`onTouch`是处理这些触摸事件的主要接口之一。本文将深入探讨`onTouch`事件传递机制,并通过`TestActivity`这个示例来解析其实现。 Android系统使用一个事件...
Title : dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent三者对MotionEvent的分发、拦截机制分析 Author: yaong Category:自己做的Demo Tips : 三个自定义View,依次嵌套,并各自覆写拦截、监听方法,通过...
Android事件分发机制是Android UI开发中的核心部分,它决定了用户交互事件如何在View和ViewGroup之间传递和处理。本文将从源码角度深入解析这一机制,帮助开发者更全面地理解其工作原理。 首先,我们需要了解事件...
在Android开发中,滑动冲突是一个常见的问题,尤其是在设计复杂用户界面时。滑动冲突通常发生在两个或多个可滑动的视图(如ScrollView、HorizontalScrollView、ViewPager等)重叠或者相邻时,用户可能尝试同时在这些...
Eclipse的项目配置、布局编辑和代码编写方式与Android Studio略有不同,熟悉这些能帮助开发者应对各种开发环境。 通过这个"Android 点击事件demo",开发者不仅可以学习到基本的点击事件处理,还能进一步掌握Android...
本文将深入探讨Android事件的分发机制,特别是关于`onTouch`事件的处理。Android事件分发流程主要包括三个关键步骤:捕捉(Capture)、分发(Dispatch)和消费(Consume),这在Android的View层次结构中进行。我们将...
在Android开发中,事件分发机制是非常重要的一个概念。理解这一机制有助于开发者更好地处理用户交互,并且能够优化应用性能。本节将深入探讨Android事件分发机制的核心概念。 #### 二、事件分发流程 **1. 事件产生...
Android面试中的事件分发机制是开发者必须掌握的关键知识点之一,涉及到UI交互的底层逻辑。事件分发主要处理用户与屏幕的交互,例如点击、滑动等操作。在Android中,事件分发涉及到MotionEvent的传递流程,从...
在Android开发中,触摸事件(Touch Event)是用户与设备交互的重要部分,它涉及到Activity、View及ViewGroup之间复杂的事件分发机制。本篇将深入探讨Android中的触摸事件处理,包括事件的产生、分发、拦截以及如何...
Android事件的分发机制是Android UI交互中的核心概念,它决定了用户对屏幕上的控件进行触摸操作时,事件如何从顶级视图逐级传递到具体的处理者。在深入讲解之前,我们先理解两个基本概念:View和ViewGroup。View是...