viewPager.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { return true; } }); 

enter image description here

If you flip through much from the left to the right, then the 2 nd green fragment will start to open slowly, by 5 7 pixels ... How to completely disable scrolling in the ViewPager?

    1 answer 1

    Create your own class inherited from ViewPager and redefine onTouchEvent and onIntersectTouchEvent as follows.

     public class CustomViewPager extends ViewPager { private boolean isPagingEnabled = true; public CustomViewPager(Context context) { super(context); } public CustomViewPager(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean onTouchEvent(MotionEvent event) { return this.isPagingEnabled && super.onTouchEvent(event); } @Override public boolean onInterceptTouchEvent(MotionEvent event) { return this.isPagingEnabled && super.onInterceptTouchEvent(event); } public void setPagingEnabled(boolean b) { this.isPagingEnabled = b; } } 

    And further in the markup, use <com.yourpackage.CustomViewPager> instead of <android.support.v4.view.ViewPager>

    And further in the code, do this:

     CustomViewPager viewPager = (CustomViewPager)findViewById(R.id.viewPager); viewPager.setPagingEnabled(false); //выключить скрол viewPager.setPagingEnabled(true); //включить скрол 
    • Duck, I almost did it, but the onTouchEvent method turned off right away ... but still it doesn’t work if there is a lot of trouble - Andro
    • @xTIGRx, you did through the installation of the Lisner, and here 2 methods are overridden. Try this. - Vladyslav Matviienko