【发布时间】:2012-12-02 14:15:09
【问题描述】:
我正在尝试将叠加层拖动到地图上,并在用户点击图钉时显示信息框。为此,我需要测量MotionEvent.ACTION_DOWN 和MotionEvent.ACTION_UP 之间的时间。为了让它感觉尽可能自然,我想知道 Android 对单击(目前我使用的是 180 毫秒)和长按使用什么值。
谢谢!
【问题讨论】:
-
您不需要编写区分
single-Tap和long-Tap的代码。而是使用GestureDetector。如果您需要更多详细信息,请告诉我。 -
我尝试了 ItemizedOverlay 中的 onTap() 并没有触发。我假设我需要拖动的 onTouchEvent() 正在消耗所有触摸事件。所以我不认为 GestureDetector 会起作用......也许你误解了我的问题,因为我的主要问题是区分单击/长按和滚动。
-
GestureDetector不会拦截运动事件,您需要通过调用gestureDetector.onTouchEvent(ev)将它们提供给GestureDetector。所以,只要你能得到一个动作事件,你就可以将它提供给GestureDetector。运动事件由类分析,并在适当的时候回调onDoubleTap()、onLongPress()、onScroll()、onSingleTapConfirmed()和其他一些事件。也许您应该查看以下文档:developer.android.com/reference/android/view/…。 -
此外,如果您没有将事件用于某事,您需要确保从
onTouchEvent()返回false:这表明该事件未被消费并且可以由其他人(即onTap().