You can simply create your own ViewPager, which extends the ViewPager and sets up a method that disables and enables scrolling.
You can do this by adding a class like the one below to your class. Then, instead of using ViewPager, just use CustomViewPager in your code:
public class CustomViewPager extends ViewPager { private boolean enabled; public CustomViewPager(Context context, AttributeSet attrs) { super(context, attrs); this.enabled = true; } @Override public boolean onTouchEvent(MotionEvent event) { if (this.enabled) { return super.onTouchEvent(event); } return false; } @Override public boolean onInterceptTouchEvent(MotionEvent event) { if (this.enabled) { return super.onInterceptTouchEvent(event); } return false; } public void setPagingEnabled(boolean enabled) { this.enabled = enabled; } }
You can disable / enable scrolling by calling: setPagingEnabled(boolean enabled).
source share