Je dois concevoir un ViewPager à partir d'un tableau de ressources de chaîne et afficher un indicateur de page circulaire. Maintenant, je veux définir le premier élément lorsque l'utilisateur balaie vers la gauche à partir du dernier élément et définissez le dernier élément lorsque vous balayez vers la droite à partir du premier élément. Après avoir traversé de nombreuses solutions, il revient en arrière tout le chemin tout en glissant à gauche du dernier élément. Tout moyen de le faire sans retour en arrière. Je veux mettre au premier élément sans heurt sans traverser le chemin entier à nouveau.comment créer une boucle circulaire vers un pager de vue sans revenir en arrière sur les éléments précédents
ci-dessous est le code que j'ai utilisé.
viewPager = (ViewPager) view.findViewById(R.id.view_pager);
mAdapter = new PromoPagerAdapter(getActivity());
viewPager.setAdapter(mAdapter);
viewPager.addOnPageChangeListener(this);
CirclePageIndicator circlePageIndicator = (CirclePageIndicator) view.findViewById(R.id.page_indicator);
circlePageIndicator.setViewPager(viewPager);
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
mCurrentPosition = position;
}
@Override
public void onPageScrollStateChanged(int state) {
int currentPage = viewPager.getCurrentItem();
if (currentPage == mAdapter.getCount()-1 || currentPage == 0) {
previousState = mCurrentPosition;
mCurrentPosition = state;
if (previousState == 1 && mCurrentPosition == 0) {
viewPager.setCurrentItem(currentPage == 0 ? mAdapter.getCount()-1 : 0);
}
}
}
Depuis Stackoverflow est un site de programmation, nous travaillons dans le code. Veuillez poster le code correspondant à ce que vous avez essayé jusqu'à présent, car nous sommes incapables de le faire pour vous. Veuillez vous reporter à [** ici **] (https://stackoverflow.com/help/mcve) pour savoir comment créer un exemple minimal, complet et vérifiable. – finnrayment