Comment faire éclater le fragment

J’ai une activité A, qui appelle le fragment Bf, qui appelle fragment Cf. Je veux que Bf soit placé dans le backstack lorsque Cf est appelé pour que les utilisateurs puissent y revenir. Cependant, si un bouton spécifique est pressé en Cf, je voudrais que Bf soit supprimé de l’arrière-plan. Est-ce possible?

Je vois qu’il y a une fonction popBackStack (). Cependant, je suis un peu confus sur la façon dont cela fonctionnerait. Est-il sécuritaire d’utiliser cette fonction? Y a-t-il une possibilité qu’une activité provenant d’une application différente soit insérée après Bf sur le backstack?

En outre, existe-t-il un moyen de modifier l’état enregistré de l’instance du fragment sur le backstack?

Je n’arrive pas à comprendre comment faire un test robuste sur le backstack en utilisant l’émulateur.

Vous pouvez pop le fragment par son nom. En ajoutant des fragments à la stack arrière, donnez-leur simplement un nom.

fragmentTransaction.addToBackStack("fragB"); fragmentTransaction.addToBackStack("fragC"); 

Ensuite, dans Fragment_C, fragB la stack en arrière en utilisant le nom ie .. fragB et incluez POP_BACK_STACK_INCLUSIVE

 someButtonInC.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { FragmentManager fm = getActivity() .getSupportFragmentManager(); fm.popBackStack ("fragB", FragmentManager.POP_BACK_STACK_INCLUSIVE); } }); 

Three Way To Fragment of BackStack

  1. Ajoutez simplement cette ligne

      getActivity().getSupportFragmentManager().popBackStack(); 

2. #

  getActivity().getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); 

3. #

  getActivity().getSupportFragmentManager().popBackStackImmediate(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); 

son moyen facile de faire éclater le backdtack