Comment savoir quel fragment est actuellement sélectionné dans un ViewPager?
- Je utiliser ViewPager chargé avec des fragments en elle et je veux savoir fragment qui est actuellement affichée ou sélectionnée dans le viewpager.
La onResume() méthode de chacun des fragments n'est un peu de logique et si je reçois des problèmes lors de la côté des fragments(gauche et droite) à la page actuellement sélectionnée sont également instancié.
Mise à jour:
Ne le fragment obtenir tout rappels quand elle sélectionnée?
ViewPager code d'Adaptateur:
public class LeftPanelPagerAdapter extends FragmentStatePagerAdapter
{
private List<Fragment> fragments;
public LeftPanelPagerAdapter(FragmentManager fm,List<Fragment> fragments)
{
super(fm);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position)
{
return this.fragments.get(position);
}
@Override
public int getCount()
{
return this.fragments.size();
}
@Override
public int getItemPosition(Object object)
{
return POSITION_NONE;
}
@Override
Vous pouvez définir un
postez votre code d'Adaptateur
j'ai mis en œuvre onPageChangeListener, mais le problème est quand les pages adjacentes chargés et le onResume() est appelée avant ils sont montrés.
mis à jour avec le code.
je poste ma réponse
OnPageChangeListener
sur votre ViewPager
d'être notifié lors de la sélection change.postez votre code d'Adaptateur
j'ai mis en œuvre onPageChangeListener, mais le problème est quand les pages adjacentes chargés et le onResume() est appelée avant ils sont montrés.
mis à jour avec le code.
je poste ma réponse
OriginalL'auteur | 2012-09-29
Vous devez vous connecter pour publier un commentaire.
Depuis le code posté par confucius, n'a pas de travail pour moi. Je l'ai modifiée un peu.
Le problème est que pas votre FragmentStatePagerAdapter devrait mettre en œuvre l'OnPageChangeListener, mais l'Activité elle-même. Et vous devez définir un écouteur pour l'mPager qui contient votre LeftPanelPagerAdapter.
br MikeT
OriginalL'auteur Mike T
suffit d'utiliser
ViewPager.getCurrentItem()
et il sera de retour c'est la position pour vous.OriginalL'auteur Muhammed Refaat
Vous pouvez obtenir l'index de l'élément courant de la ViewPager et puis obtenir l'élément en question (Fragment) de l'Adaptateur.
OriginalL'auteur Mac
vous pouvez implémente
OnPageChangeListener
et ajouter une variable membre, qui peut être utilisé pour surveiller le courant sélectionné fragment de position .tout moment, vous souhaitez savoir quel est le fragment sélectionné ce faire
le code ci-dessus devrait vous donner le droit de savoir quel fragment est montré directement à l'utilisateur
Je ne comprends pas tous les commentaires dans onPageSelected.
vous pouvez poster votre code ?? avez-vous mis la page sélectionnée écouteur à votre téléavertisseur ??
Un peu comme vous. Un FragmentStatePagerAdapter qui implémente OnPageChangeListener. Ensuite, j'ai un point d'arrêt et un journal dans le OnPageChangeListener. Le problème est que tous les fragments est créée au début et puis plus rien, est appelée après que. Je peux swype etc. sans aucun problème.
OriginalL'auteur confucius
Voici comment je suis obtenir des rappels lors de mes fragments sélectionnés
remplacer FragmentStatePagerAdapter la méthode de setPrimaryItem, qui est appelée chaque fois qu'un nouveau fragment est sélectionné. L'Objet argument est votre Fragment, de sorte que le reste est assez facile.
et, bien sûr, de mettre en œuvre custon interface de votre fragment
OriginalL'auteur AArkh
avec
ViewPager.getCurrentItem()
vous pouvez obtenir de l'actuelle position du fragment dans l'adaptateur https://developer.android.com/reference/android/support/v4/view/ViewPager.html#getCurrentItem(
Pour obtenir de l'événement lors de viewpager changement fragment que vous pouvez utiliser
ViewPager.OnPageChangeListener
OriginalL'auteur Tung Duong