web-dev-qa-db-fra.com

Comment afficher par programme la vue suivante dans ViewPager?

J'ai créé un ViewPager et tout fonctionne correctement, mais je souhaite utiliser un bouton Suivant précédent en dehors de ViewPager, qui peut être utilisé pour naviguer dans ViewPager. Comment puis-je accéder à l'élément suivant sur ViewPager sans glisser manuellement?

94
Vaibhav Mishra

Comme l'a dit le bénédiction, viewpager.setCurrentItem(int index) est la voie à suivre.

141
Vaibhav Mishra

Une implémentation complète juste pour être complet:

public void MoveNext(View view) {
    //it doesn't matter if you're already in the last item
    pager.setCurrentItem(pager.getCurrentItem() + 1);
}

public void MovePrevious(View view) {
    //it doesn't matter if you're already in the first item
    pager.setCurrentItem(pager.getCurrentItem() - 1);
}
93
Androiderson

Le moyen le plus simple est:

nextButton.setOnClickListener { pager.arrowScroll(View.FOCUS_RIGHT) }
prevButton.setOnClickListener { pager.arrowScroll(View.FOCUS_LEFT) }
3
Pitel

je le répare mieux, ty anderson.

  private void MoveNextTopSlideShow(View view)
    {
        if (_viewPager_TopImageSlide.CurrentItem == _viewPager_TopImageSlide.ChildCount)
        {
            if (_viewPager_TopImageSlide.ChildCount > 0)
            {
                _viewPager_TopImageSlide.SetCurrentItem(0,true);
            }
        }
        else
        {
            //it doesn't matter if you're already in the last item
            _viewPager_TopImageSlide.SetCurrentItem(_viewPager_TopImageSlide.CurrentItem + 1, true);
        }
    }

    private void MovePreviousTopSlideShow(View view)
    {
        if (_viewPager_TopImageSlide.CurrentItem == 0)
        {
            if (_viewPager_TopImageSlide.ChildCount > 0)
            {
                _viewPager_TopImageSlide.SetCurrentItem(_viewPager_TopImageSlide.ChildCount-1, true);
            }
        }
        else
        {
            //it doesn't matter if you're already in the first item
            _viewPager_TopImageSlide.SetCurrentItem(_viewPager_TopImageSlide.CurrentItem - 1, true);
        }
    }
0
Arman