私はonLongPressがonDownを好きではないと思います。これは、onLongPressの戻り値は何かをチェックするのに使われませんが、onDownの戻り値はシステムにとって有益です。 。アンドロイドのソースコードから:
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が起きたかどうかを確認できます。 これがあなたを助けてくれることを願っています。
それを実装できないブール値が返されないのはどうですか? – trutheality
私はそれを実装することができますが、イベントを消費することはできません。 'SimpleOnGestureListener'の他のすべての関数はブール値を返します。そのブール値を使用して、イベントが消費されたかどうかを判断できます。それが消費された場合、それ以上のイベント処理を停止します。 たとえば、 'onFling'はbooleanを返します。そのため、後に' click'を処理しないことを知っています。私は 'onLongPress'でそれをすることはできません。 –