Androidで一方向の水平ナビゲーションを提供する最良の方法は何ですか? 期待を設定するために、私は 2 か月前に Android アプリケーションの作成を開始しました。
私の状況では、ユーザーが 1 つずつ表示する画面サイズの画像のリストがあります。次の画像を見るには、ユーザーは左にスワイプする必要があります (右から左への動き)。画像が表示されると、ユーザーは戻ることができなくなります。したがって、この目的のために、右スワイプ (左から右への動き) を無効にする必要があります。
以下のように onTouchEvent メソッドをオーバーライドしたカスタム ViewPager を使用してこれを実現しました。
@Override
public boolean onTouchEvent(MotionEvent ev) {
boolean lockScroll = false;
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_UP:
lastX = ev.getX();
return super.onTouchEvent(ev);
case MotionEvent.ACTION_MOVE:
if (lastX >= ev.getX()) {
lockScroll = false;
} else {
lockScroll = true;
}
lastX = ev.getX();
break;
}
if (lockScroll) {
return false;
} else {
return super.onTouchEvent(ev);
}
}
これは主に機能します。つまり、ほとんどの場合、右スワイプがブロックされますが、特定のケースでは、その理由がわかりません。どこに問題があるのか 、またはこの状況を処理する他の方法はありますか?
ありがとう!