リスト ビュー内で水平方向のスワイプを検出する必要があります。ジェスチャ検出器または onTouch イベントを使用する必要がありますか。Android 2.1 以降をサポートする必要があります
ある投稿では、以下のように ListView で onInterceptTouchEvent をオーバーライドする必要があることが示されました。
@Override public boolean onInterceptTouchEvent(MotionEvent ev) {
switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: // reset difference values mDiffX = 0; mDiffY = 0;
mLastX = ev.getX();
mLastY = ev.getY();
break;
case MotionEvent.ACTION_MOVE:
final float curX = ev.getX();
final float curY = ev.getY();
mDiffX += Math.abs(curX - mLastX);
mDiffY += Math.abs(curY - mLastY);
mLastX = curX;
mLastY = curY;
// don't intercept event, when user tries to scroll vertically
if (mDiffX > mDiffY) {
return false; // do not react to horizontal touch events, these events will be passed to your list item view
}
}
return super.onInterceptTouchEvent(ev);
}
ただし、これが機能するかどうか、または最善の方法であるかどうかはわかりません。質問が8日前に無意識に閉じられたのは助けにはなりませんでした: ListView内のスワイプジェスチャ-Android