根据Android开发人员的说法:


  onLongPress在初始键为开的情况下长按发生时通知
  触发它的MotionEvent。
  
  onShowPress用户执行了DownMotionEvent,但未执行移动或
  还没有。此事件通常用于向用户提供视觉反馈
  用户让他们知道他们的行为已被认可,即
  突出显示一个元素。


我同时尝试了两个按钮,并使用Toast表示showPresslongPress发生了。但是,我看不出任何区别。

onLongPressonShowPress有什么区别?当我们为这些override GestureDetector MotionEvents时,有哪些示例?

最佳答案

当触摸事件(按下屏幕)的时间等于onLongPress(可以在here中看到)时,将触发getLongPressTimeout。触发时,这表明按下已变成长按。

另一方面,onShowPress表示触摸事件确实是轻击(不是滚动)。要知道何时触摸事件是轻击,将有一个时间间隔记录来自触摸事件的运动。时间间隔由getTapTimeout返回(读取为here)。

两者都与触摸事件有关,但是具有不同的触发时间(和不同的用途)。阅读问题中的注释(here)提供的链接将有助于您理解两者。

07-24 09:24