I\'m working on an app which uses many pages to swipe through, however at some pages I would like to be able to prevent scrolling to the next page until they\'ve selected so
you can use your custom view pager
public class CustomViewPager extends ViewPager
{
float mStartDragX;
OnSwipeOutListener mListener;
Context context;
public static boolean enabled;
public CustomViewPager(Context context, AttributeSet attrs)
{
super(context, attrs);
this.context = context;
enabled = true;
}
@Override
public boolean onTouchEvent(MotionEvent event)
{
if (enabled) //view pager scrolling enable if true
{
return super.onTouchEvent(event);
}
return false;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev)
{
if (enabled)enter code here
{
return super.onInterceptTouchEvent(ev);
}
else // view pager disable scrolling
{
float x = ev.getX();
switch (ev.getAction())
{
case MotionEvent.ACTION_DOWN:
mStartDragX = x;
break;
case MotionEvent.ACTION_MOVE:
if (mStartDragX < x - 100)//100 value velocity
{
//Left scroll
//return super.onInterceptTouchEvent(ev);
}
else
if (mStartDragX > x + 100)
{
//Right scroll
//return super.onInterceptTouchEvent(ev);
}
break;
}
}
return false;
}
public void setOnSwipeOutListener(OnSwipeOutListener listener)
{
mListener = listener;
}
public interface OnSwipeOutListener
{
public void onSwipeOutAtStart();
public void onSwipeOutAtEnd();
}
}