2015-04-11 1 views
0

J'essaye de retirer un fragment de ma pile. J'utilise ce code:Android: Différence entre ft.remove() et popBackStack()

FragmentManager fm = getSupportFragmentManager(); 
    if (fm != null) { 
     FragmentTransaction ft = fm.beginTransaction(); 
     Fragment currentFragment = fm.findFragmentById(R.id.my_id); 
     if (currentFragment != null) { 
      ft.remove(currentFragment); 
      ft.commit(); 
     } 
    } 

Dois-je appeler popBackStack() avec le code ci-dessus?

fm.popBackStack(); 
+0

je prendrais un coup d'oeil à cette réponse: http://stackoverflow.com/questions/17793249/how-do-popbackstack-and-replace-operations-differ – Petro

Répondre

2

remove() supprimera simplement le fragment.

popBackStack() va supprimer le fragment actuel et le remplacer par le dernier de la pile. Pour que cela fonctionne, vous devez faire addToBackstack() sur la dernière transaction de fragment. Mais ce n'est pas ce que vous voulez faire, alors ne le faites pas.