`
dengzhangtao
  • 浏览: 677535 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于onTouch和onClick关系紧密

阅读更多
View的onTouch的返回值关系到onClick,onLongClick事件发生:

一,返回false
首先是onTouch事件的down事件发生,此时,如果长按,触发onLongClick事件;
然后是onTouch事件的up事件发生,up完毕,最后触发onClick事件。

二,true
首先是onTouch事件的down事件发生,然后是onTouch事件的up事件发生;期间不触发onClick和onLongClick事件

三,onTouch:down返回true,up返回false:结果同二。
机制分析:
        onTouch事件中:down事件返回值标记此次事件是否为点击事件(返回false,是点击事件;返回true,不记为点击事件),而up事件标记此次事件结束时间,也就是判断是否为长按。
只要当down返回true时候,系统将不把本次事件记录为点击事件,也就不会触发onClick或者onLongClick事件了。因此尽管当up的时候返回false,系统也不会继续触发onClick事件了。

四,onTouch:down返回false,up返回true:
首先是onTouch事件的down事件发生,此时:
长按,触发onLongClick事件,然后是onTouch事件的up事件发生,完毕。
短按,先触发onTouch的up事件, 到一定时间后,自动触发onLongClick事件。
机制分析:
        onTouch事件中:down事件返回值标记此次事件是否为点击事件(返回false,是点击事件;返回true,不记为点击事件),而up事件标记此次事件结束时间,也就是判断是否为长按。
        当down返回false,标记此次事件为点击事件,而up返回了true,则表示此次事件一直没有结束,也就是一直长按下去了,达到长按临界时间后,自然触发长按事件,而onClick事件没有触发到。
0
0
分享到:
评论

相关推荐

    android悬浮框的onTouch和onClick事件同时存在

    在实现悬浮窗时,我们经常需要处理用户的触摸交互,包括单击(onClick)和滑动(onTouch)事件。标题提到的“android悬浮框的onTouch和onClick事件同时存在”是指在悬浮窗上,既能够响应用户的点击操作,又能够正确...

    实现OnTouch、OnClick、OnLongClick的并存

    通常,`OnTouch`会先于`OnClick`和`OnLongClick`接收到事件。如果在`OnTouch`的`ACTION_DOWN`中返回`true`,那么`OnClick`和`OnLongClick`将不会被触发。因此,需要在`OnTouch`的`ACTION_UP`或`ACTION_CANCEL`中判断...

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

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

    详谈Android中onTouch与onClick事件的关系(必看)

    在Android开发中,触摸事件处理...在实际开发中,理解它们之间的关系和触发机制,对于创建响应灵敏、用户体验良好的Android应用至关重要。开发者需要根据具体需求灵活运用,并注意避免事件冲突,确保用户交互的顺畅性。

    浅谈onTouch先执行,还是onClick执行(详解)

    本文将深入探讨`onTouch`和`onClick`事件的执行顺序以及它们的工作原理。首先,我们有这样一个场景:一个`Button`对象`mTestButton`,同时设置了`OnClickListener`和`OnTouchListener`。 ```java mTestButton....

    OnTouch事件对应代码

    2. **滑动冲突**:当同时使用`OnTouch`和`ScrollView`等可滚动的组件时,可能会导致滑动不流畅。这时可以考虑使用`GestureDetector`或`Scroller`来处理滑动事件。 3. **焦点问题**:有些`View`如`EditText`在获得...

    手势操作onTouch事件demo

    总的来说,`onTouch`事件和手势识别在Android开发中扮演着重要角色,它们使应用能够响应用户的触摸行为,从而提供更加自然、直观的用户体验。通过熟练掌握`onTouch`事件处理和手势检测工具的使用,开发者可以构建出...

    android click 和onTouch 事件处理机制.

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

    Android onTouch事件传递机制

    本篇文章将深入探讨Android的`onTouch`事件传递机制,帮助开发者更好地理解和运用这一功能。 首先,Android的触摸事件主要由三个基本事件构成:`ACTION_DOWN`、`ACTION_UP`和`ACTION_MOVE`。`ACTION_DOWN`表示手指...

    详细分析Android中onTouch事件传递机制

    `onTouch`是处理触摸事件的关键,本文将深入探讨其工作原理和传递机制。 首先,`onTouch`是基于`MotionEvent`的,`MotionEvent`代表了一个触摸序列,比如用户按下屏幕、移动手指和抬起手指等操作。它包含了事件的...

    使用OnTouch实现一个控件同时设置单击、双击、长按事件demo

    `MotionEvent`对象包含了关于触摸事件的所有信息,如动作类型(ACTION_DOWN, ACTION_UP, ACTION_MOVE等)和坐标位置。 ### 二、单击事件 单击事件通常由`OnClickListener`处理,但在`OnTouchListener`中,我们可以...

    老生常谈onTouch和onTouchEvent(必看篇)

    `onTouch`和`onTouchEvent`是两个与触摸事件紧密相关的函数,它们都在处理用户的触摸输入。本文将深入解析这两个函数的工作原理及其在事件传递链中的角色。 1. **onTouch()**: `onTouch`方法是`View`类的`...

    onInterceptTouchEvent和onTouchEvent调用关系详解

    理解并掌握`onInterceptTouchEvent`和`onTouchEvent`的调用关系,可以帮助开发者更灵活地控制触摸事件的流向,实现复杂的手势识别和用户界面交互。在实际开发中,我们可以通过重写这两个方法,为自定义View或...

    OnTouch的简单demo

    本示例,"OnTouch的简单demo",旨在为开发者提供一个基础的了解和实践`OnTouchListener`的机会。这个demo可能包含了如何注册监听器、如何捕获并响应不同触摸事件的基本步骤。下面我们将深入探讨`OnTouch`事件及其...

    Android ontouch事件处理的三种方式

    以上三种方式都可以有效地处理Android中的`ontouch`事件,选择哪种方式主要取决于你的项目需求和个人编程风格。在实际开发中,通常会根据功能复杂性和代码组织结构来决定采用哪种实现方式。无论选择哪种方式,确保...

    Android onTouch机制

    总之,Android的`onTouch`机制是构建用户界面交互的关键,通过`dispatchTouchEvent`的事件分发和`onTouchEvent`的事件处理,开发者可以精确地控制用户触摸行为的响应。结合日志追踪,我们可以深入了解触摸事件的生命...

    android view OnTouchEvent 中同时处理 onClick,onLongClick,和左右移动事件

    `OnTouchEvent`是`View`接收触摸输入的主要方法,而`onClick`、`onLongClick`和左右移动事件则是在用户与界面交互时的常见操作。下面将详细介绍如何在`OnTouchEvent`中有效地处理这些事件。 首先,`onClick`事件...

Global site tag (gtag.js) - Google Analytics