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

我在这里想念什么吗?我的意思是,我什至无法解决尝试实现OnGestureListener接口的问题,因为它期望onLongPress()无效。我有什么选择?

最佳答案

我认为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只是告诉您发生了这些情况。返回值对系统没有用。

如果要实现设计,则可以使用该变量检查LongPress是否发生。
希望这可以帮到你。

09-26 12:38