So deaktivieren Sie, dass ViewPager in eine Richtung wischt

Ich möchte dem Benutzer erlauben, mit dem Finger über einen Bildschirm zu streichenViewPager nur von rechts nach links. Sobald er eine Seite passiert hat, kann er nicht mehr darauf zurückkommen. Wie geht das?

Ich habe es versuchtdiese Lösung:

public class CustomViewPager extends ViewPager {

float lastX = 0;

boolean lockScroll = false;

public CustomViewPager(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public CustomViewPager(Context context) {
    super(context);
}

@Override
public boolean onTouchEvent(MotionEvent ev) {

    switch (ev.getAction()) {
    case MotionEvent.ACTION_DOWN:
        lastX = ev.getX();
        lockScroll = false;
        return super.onTouchEvent(ev);
    case MotionEvent.ACTION_MOVE:

        if (lastX > ev.getX()) {
            lockScroll = false;
        } else {
            lockScroll = true;
        }

        lastX = ev.getX();
        break;
    }

    lastX = ev.getX();

    if(lockScroll) {
        return false;
    } else {
        return super.onTouchEvent(ev);
    }
}
}

Aber es erlaubt mir immer noch, schlecht in die andere Richtung zu streichen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage