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事件没有触发到。
分享到:
相关推荐
在实现悬浮窗时,我们经常需要处理用户的触摸交互,包括单击(onClick)和滑动(onTouch)事件。标题提到的“android悬浮框的onTouch和onClick事件同时存在”是指在悬浮窗上,既能够响应用户的点击操作,又能够正确...
通常,`OnTouch`会先于`OnClick`和`OnLongClick`接收到事件。如果在`OnTouch`的`ACTION_DOWN`中返回`true`,那么`OnClick`和`OnLongClick`将不会被触发。因此,需要在`OnTouch`的`ACTION_UP`或`ACTION_CANCEL`中判断...
在Android开发中,我们经常会遇到各种事件监听器的冲突问题,特别是`onclick`、`ontouch`和`scroll`监听器。这些事件在用户交互时可能会同时触发,导致不期望的行为,例如,当用户尝试滚动页面时,点击事件却意外...
在Android开发中,触摸事件处理...在实际开发中,理解它们之间的关系和触发机制,对于创建响应灵敏、用户体验良好的Android应用至关重要。开发者需要根据具体需求灵活运用,并注意避免事件冲突,确保用户交互的顺畅性。
本文将深入探讨`onTouch`和`onClick`事件的执行顺序以及它们的工作原理。首先,我们有这样一个场景:一个`Button`对象`mTestButton`,同时设置了`OnClickListener`和`OnTouchListener`。 ```java mTestButton....
2. **滑动冲突**:当同时使用`OnTouch`和`ScrollView`等可滚动的组件时,可能会导致滑动不流畅。这时可以考虑使用`GestureDetector`或`Scroller`来处理滑动事件。 3. **焦点问题**:有些`View`如`EditText`在获得...
总的来说,`onTouch`事件和手势识别在Android开发中扮演着重要角色,它们使应用能够响应用户的触摸行为,从而提供更加自然、直观的用户体验。通过熟练掌握`onTouch`事件处理和手势检测工具的使用,开发者可以构建出...
在Android开发中,点击事件(click)和触摸事件(onTouch)是两种常见的用户交互处理方式,它们在处理用户屏幕操作时起到了至关重要的作用。理解它们的事件处理机制是构建高效且响应良好的用户界面的关键。 首先,...
本篇文章将深入探讨Android的`onTouch`事件传递机制,帮助开发者更好地理解和运用这一功能。 首先,Android的触摸事件主要由三个基本事件构成:`ACTION_DOWN`、`ACTION_UP`和`ACTION_MOVE`。`ACTION_DOWN`表示手指...
`onTouch`是处理触摸事件的关键,本文将深入探讨其工作原理和传递机制。 首先,`onTouch`是基于`MotionEvent`的,`MotionEvent`代表了一个触摸序列,比如用户按下屏幕、移动手指和抬起手指等操作。它包含了事件的...
`MotionEvent`对象包含了关于触摸事件的所有信息,如动作类型(ACTION_DOWN, ACTION_UP, ACTION_MOVE等)和坐标位置。 ### 二、单击事件 单击事件通常由`OnClickListener`处理,但在`OnTouchListener`中,我们可以...
`onTouch`和`onTouchEvent`是两个与触摸事件紧密相关的函数,它们都在处理用户的触摸输入。本文将深入解析这两个函数的工作原理及其在事件传递链中的角色。 1. **onTouch()**: `onTouch`方法是`View`类的`...
理解并掌握`onInterceptTouchEvent`和`onTouchEvent`的调用关系,可以帮助开发者更灵活地控制触摸事件的流向,实现复杂的手势识别和用户界面交互。在实际开发中,我们可以通过重写这两个方法,为自定义View或...
本示例,"OnTouch的简单demo",旨在为开发者提供一个基础的了解和实践`OnTouchListener`的机会。这个demo可能包含了如何注册监听器、如何捕获并响应不同触摸事件的基本步骤。下面我们将深入探讨`OnTouch`事件及其...
以上三种方式都可以有效地处理Android中的`ontouch`事件,选择哪种方式主要取决于你的项目需求和个人编程风格。在实际开发中,通常会根据功能复杂性和代码组织结构来决定采用哪种实现方式。无论选择哪种方式,确保...
总之,Android的`onTouch`机制是构建用户界面交互的关键,通过`dispatchTouchEvent`的事件分发和`onTouchEvent`的事件处理,开发者可以精确地控制用户触摸行为的响应。结合日志追踪,我们可以深入了解触摸事件的生命...
`OnTouchEvent`是`View`接收触摸输入的主要方法,而`onClick`、`onLongClick`和左右移动事件则是在用户与界面交互时的常见操作。下面将详细介绍如何在`OnTouchEvent`中有效地处理这些事件。 首先,`onClick`事件...