Comment désactiver ou activer viewpager glisser dans android

Ce que je suis en train de faire: je suis en train d'Activer/désactiver le glisser dans pager par programme lorsque le programme est en cours d'exécution

Ex: Lorsque le flux si je vérifie une condition et si elle renvoie true permettre de glisser, et si la condition renvoie false désactiver le balayage.


La Solution que j'utilise est ce un

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;
} }

Puis sélectionnez ceci à la place de la builtin viewpager en XML

<mypackage.CustomViewPager 
android:id="@+id/myViewPager" 
android:layout_height="match_parent" 
android:layout_width="match_parent" />

Vous avez juste besoin d'appeler le "setPagingEnabled" la méthode du "faux" et les utilisateurs ne seront pas en mesure de passer à la pagination.


Problème avec la méthode ci-dessus: je ne peux pas définir la propriété sur le flux, I:e .... Je l'ai peut permettre de glisser ou de désactiver le balayage. Mais je ne peux pas le faire en se fondant sur la condition


Question:

  1. Puis-je atteindre mon objectif dans quelques-autre manière, si oui quel est-il ?
  2. Ou n'est-ce pas possible ?
InformationsquelleAutor Devrath | 2015-04-04