¿Cómo hacer que ViewPage no se pueda deslizar en determinadas circunstancias?
Para hacer esto utilicé el método de puerta parcial.
Cuando no se cumplen las condiciones de deslizamiento, se puede configurar el evento ViewPager. Setontouchillister (nuevo...), y no es necesario hacer nada en el interior, cubriendo así el evento deslizante de ViewPager.
Cuando se cumplan las condiciones, establezca OnTouchListener(null) nuevamente para que ViewPager pueda deslizarse nuevamente.
Si quieres solucionarlo desde el código, echa un vistazo a varios métodos de reescritura de ViewPager. Parece que no puedes parar. Deberías comenzar con el código fuente.