Lo que estoy tratando de hacer: estoy tratando de habilitar / deshabilitar el deslizamiento en el localizador de manera programática cuando el programa se está ejecutando
Ej .: Cuando esté en el flujo si verifico una condición y si regresa,true
habilite el deslizamiento, y si la condición regresafalse
deshabilite el deslizamiento.
La solución que estoy usando es esta
public class CustomViewPager extends ViewPager {
private boolean enabled;
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
this.enabled = true;
}
@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;
}
public void setPagingEnabled(boolean enabled) {
this.enabled = enabled;
} }
Luego, seleccione esto en lugar del visor incorporado en XML
<mypackage.CustomViewPager
android:id="@+id/myViewPager"
android:layout_height="match_parent"
android:layout_width="match_parent" />
Solo necesita llamar al método "setPagingEnabled" con "false" y los usuarios no podrán deslizar el dedo para paginar.
Problema con la metodología anterior: no puedo establecer la propiedad en el flujo, yo: e .... Puedo habilitar el deslizamiento o deshabilitar el deslizamiento. Pero no puedo hacer esto por condición
Pregunta:
- ¿Puedo lograr mi objetivo de alguna otra manera? Si es así, ¿cuál es?
- O esto no es posible ?