如标题所述。我无法使用该事件的事实导致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是否发生。
希望这可以帮到你。