ViewPager définir la page actuelle par programmation

J'ai écrit une coutume ViewPager pour désactiver Swipe Scroll, mais je veux balayez vers la programmation. J'ai trois Tab, à mon avis, pager, mais quand je l'appelle viewPager.setCurrentItem(viewPager.getCurrentItem()+1) sur la première Fragment, il passe à la troisième Fragment au lieu de la deuxième Fragment. Et si je l'appelle, même fonction dans la deuxième Fragment, il passe à la troisième. Si je l'appelle, (viewPager.getCurrentItem()-1)` dans le troisième fragment, il fonctionne très bien par revenir. Toute aide serait appréciée. Mon code est ci-dessous:

NonSwipeAbleViewPager

public class NonSwipeableViewPager extends ViewPager {

private boolean swipeable;

public NonSwipeableViewPager(Context context, AttributeSet attrs) {
    super(context, attrs);
    TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MyViewPager);
    try {
        swipeable = a.getBoolean(R.styleable.MyViewPager_swipeable, true);
    } finally {
        a.recycle();
    }
}

@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
    return swipeable ? super.onInterceptTouchEvent(event) : false;
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    return swipeable ? super.onTouchEvent(event) : false;
}
}

Déclaration XML

<co.example.customview.NonSwipeableViewPager
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    app:swipeable="false" />

L'appelant

 @Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.menuNext:
            NonSwipeableViewPager pages = (NonSwipeableViewPager) getActivity().findViewById(R.id.pager);
            pages.setCurrentItem(pages.getCurrentItem()+1, true);
            break;
        default:
            return super.onOptionsItemSelected(item);
    }
    return super.onOptionsItemSelected(item);
}
êtes-vous sûr que lorsque vous appuyez sur le menuNext bouton le premier bouton, vous êtes sur le fragment à l'indice 0 ?
Je pense que je me souviens de certaines bizarreries du travail de ce genre à un certain point. Je ne peux pas rappeler ce que la résolution a été.
Avez-vous essayé de séparer les déclarations? int currentItem = pages.getCurrentItem(); currentItem++; pages.setCurrentItem(currentItem);
Je suis. J'ai essayé de l'avoir Connecté par Log.e("PAGES:", String.valueOf(pager.getCurrentItem())); Le plus drôle, c'est que, si je suis sur le deuxième onglet et passer à la troisième onglet, il ne marche pas le journal. Mais, si je suis sur la première et cliquez sur le troisième Onglet, il enregistre la page en tant que 2
Même chose. Passe à la troisième page

OriginalL'auteur Abubakar Oladeji | 2015-03-10