How can you disable the scrolling of ViewPage
pages when a swipe
gesture is made?
How can you disable the scrolling of ViewPage
pages when a swipe
gesture is made?
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:
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;
}