2016-12-06 1 views
4

Je voulais savoir quand un fragment était pop depuis le backstack.Comment écouter Fragment Backstack Pop uniquement?

Je mon code comme ci-dessous

private void setupChildFragmentPopListener() { 
    getChildFragmentManager().addOnBackStackChangedListener(
      new FragmentManager.OnBackStackChangedListener() { 
       @Override 
       public void onBackStackChanged() { 
        // Do whatever I want 
       } 
      }); 
} 

Cependant, ce code a obtenu déclenché à la fois quand fragment d'ajout et de la pop. Comment pourrais-je avoir un moyen d'écouter uniquement le fragment pop? Ou un moyen de filtrer dans la fonction onBackStackChanged() si ce n'est pas pop?

Répondre

2

Vous pouvez comptabiliser les entrées du backstack et les comparer chaque fois que vous appelez votre onBackStackChanged().

private void setupChildFragmentPopListener() { 
    getChildFragmentManager().addOnBackStackChangedListener(
      new FragmentManager.OnBackStackChangedListener() { 
       @Override 
       public void onBackStackChanged() { 
        int backCount = getChildFragmentManager().getBackStackEntryCount(); 
       } 
      }); 
} 
+0

Merci pour votre aide! – Elye