为什么onLongPress()不像所有其他SimpleOnGestureListener一样返回布尔值?

时间:2012-04-20 04:13:35

标签: java android

正如标题所述。我无法使用该事件的事实导致事后立即发生click事件。现在我手动跟踪处理潜在点击时是否发生了长按。

我在这里遗漏了什么吗?我的意思是,我甚至无法绕过这个尝试实现OnGestureListener接口,因为它期望onLongPress()的空白。我有什么选择?

1 个答案:

答案 0 :(得分:0)

我认为onLongPress不喜欢onDown这些,onLongPress的返回值不用于检查某些东西,但是onDown的返回值对系统很有用,它将帮助系统识别另一个事件。来自android源代码:

   mStillDown = true;
   mInLongPress = false;
   if (mIsLongpressEnabled) {
      mHandler.removeMessages(LONG_PRESS);
      mHandler.sendEmptyMessageAtTime(LONG_PRESS, mCurrentDownEvent.getDownTime() +      TAP_TIMEOUT + LONGPRESS_TIMEOUT);
    }
       mHandler.sendEmptyMessageAtTime(SHOW_PRESS, mCurrentDownEvent.getDownTime() + TAP_TIMEOUT);
      handled |= mListener.onDown(ev);

onLongPress和ShowPress只是告诉这些情况发生了。返回值对系统无用。

如果你想实现你的设计,你可以使用varable来检查LongPress是否发生了。 希望这可以帮到你。