2

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);
        }
}

これは主に機能します。つまり、ほとんどの場合、右スワイプがブロックされますが、特定のケースでは、その理由がわかりません。どこに問題があるのか​​ 、またはこの状況を処理する他の方法はありますか?

ありがとう!

4

2 に答える 2

2

Android 開発へようこそ! すぐに学べることの 1 つは、既にオープン ソースで利用可能なものを実装しないことです。https://github.com/nostra13/Android-Universal-Image-Loaderのギャラリー機能を使用することをお勧めします。自分で作成した場合よりも見栄えがよくなり、堅牢になります。

于 2013-08-02T20:16:15.180 に答える
1

ViewPager#canScrollHorizo​​ntallyを見てください。オーバーライドの最有力候補です。

于 2013-08-02T20:15:17.983 に答える