Une solution simple est de créer votre propre sous-classe de ViewPager
qui a un private boolean
drapeau, isPagingEnabled
. Ensuite, remplacez le onTouchEvent
y onInterceptTouchEvent
méthodes. Si isPagingEnabled
est égal à vrai, l'appel de la super
sinon return
.
public class CustomViewPager extends ViewPager {
private boolean isPagingEnabled = true;
public CustomViewPager(Context context) {
super(context);
}
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return this.isPagingEnabled && super.onTouchEvent(event);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
return this.isPagingEnabled && super.onInterceptTouchEvent(event);
}
public void setPagingEnabled(boolean b) {
this.isPagingEnabled = b;
}
}
Alors dans votre Layout.XML
remplace tout fichier <com.android.support.V4.ViewPager>
tags avec <com.yourpackage.CustomViewPager>
tags.
Ce code a été adapté de ce qui suit article de blog .
2 votes
Duplicata possible de Comment désactiver la pagination par glissement du doigt dans ViewPager tout en conservant la possibilité de glisser par programmation ?