More than 1 year has passed since last update.

こんなクラスを使う。

キモは、onTouchEventonInterceptTouchEventの両メソッドをオーバーライドしてタッチイベントを奪ってしまうこと

public class SwipeControlViewPager extends ViewPager {

    protected boolean enableSwipe = true;

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

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

    public void setSwipeEnable(boolean enable) {
        this.enableSwipe = enable;
    }

    public void toggleSwipeEnable() {
        this.enableSwipe = !this.enableSwipe;
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        if (enableSwipe) {
            return super.onInterceptTouchEvent(ev);
        }
        return false;
    }

    @Override
    public boolean onTouchEvent(MotionEvent ev) {
        if (enableSwipe) {
            return super.onTouchEvent(ev);
        }
        return false;
    }
}