[Android] Viewpager swipe disable
ViewPager에 Touch로 인한 Page 이동을 막고자 할 때 아래와 같이 Custom한 ViewPager를 사용 하세요.
package com.namuon.ringq.widget.viewpager;
import android.content.Context;
import android.support.v4.view.MotionEventCompat;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;
public class SwipeViewPager extends ViewPager {
private boolean enabled;
public SwipeViewPager(Context context) {
super(context);
}
public SwipeViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (enabled) {
return super.onInterceptTouchEvent(ev);
} else {
if (MotionEventCompat.getActionMasked(ev) == MotionEvent.ACTION_MOVE) {
// ignore move action
} else {
if (super.onInterceptTouchEvent(ev)) {
super.onTouchEvent(ev);
}
}
return false;
}
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
if (enabled) {
return super.onTouchEvent(ev);
} else {
return MotionEventCompat.getActionMasked(ev) != MotionEvent.ACTION_MOVE && super.onTouchEvent(ev);
}
}
public void setPagingEnabled(boolean enabled) {
this.enabled = enabled;
}
}
참고 : http://stackoverflow.com/a/36614266/3534559
setPagingEnabled 에 false를 주게 되면 Touch로 인한 paging을 막을 수 있습니다.
참고 하세요.