Prevent sliding gesture in an Android ViewPager

2

How can you disable the scrolling of ViewPage pages when a swipe gesture is made?

    
asked by Webserveis 08.12.2016 в 10:23
source

2 answers

1

To disable-you can put this:

 final View touchView = findViewById(R.id.Pager); 
    touchView.setOnTouchListener(new View.OnTouchListener() 
    {         
        @Override
        public boolean onTouch(View v, MotionEvent event)
        { 
           return true; 
        }
     });

Do the same in onInterceptTouchEvent (event MotionEvent) .

If I have not found a similar doubt in StackOverflow in English, follow these steps:

link

answered by 08.12.2016 в 14:04
1

If you want that an element within the ViewPager does not have the displacement enabled, you can take the reference of the parent container that contains your ViewPager, for example a layout you can disable it like this:

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

This assuming these within a fragment, I consider that it has the greatest use given the use of fragments in applications.

If this is done within ViewPager you would have to overwrite the events onTouchEvent and onInterceptTouchEvent :

   @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;
    }
    
answered by 08.12.2016 в 16:09