J'ai une activité, et quatre types de fragment A, B, C, Dquestion FragmentTransaction backPressed BackStack
d'abord, je vais vous montrer un exemple de Fraga dans HomeActivity - (FRAGMENT 1)
de FRAGMENT1 Je vais charger une instance de fragB (FRAGMENT 2) (_ cette transaction ajouté à backstack)
de 2 FRAGMENT Je vais charger une nouvelle instance de Fraga (FRAGMENT 3) (non ancien), (cette transaction n'est PAS ajoutée au backstack) (Donc FRAGMENT 2 devrait être détruit ed)
Maintenant, je vais appuyer sur backButton, et cela ira à fragmenter 1 (donc 3 FRAGMENT sera détruit comme je pense)
et fragment1 de backstack est chargé. À ce stade, On peut supposer maintenant il n'y a pas de fragments dans backstack. (Ce qui signifie que si je clique de nouveau il fermer l'application)
maintenant de cette FRAGMENT 1, je vais aller à fragmenter 4 (instance de fragC) , (cette transaction je vais ajouter au backstack).
Maintenant, je vais presse BackButton,
maintenant théoriquement, il devrait charger FRAGMENT 1 (instance de Fraga). mais FRAGMENT 3 (instance de fragA) se charge.
(Je me demande comment est-ce que FRAGMENT3 est entré en image, il a été retiré et n'a pas été ajouté au backstack).
et d'autres questions semblables vient à l'image, si je vais plus loin
et ceci est mon code dans onbackpressed
@Override
public void onBackPressed() {
if(getSupportFragmentManager().getBackStackEntryCount() > 1){
getSupportFragmentManager().popBackStackImmediate();
}else {
super.onBackPressed();
}
}
oui même problème que j'ai affronté une fois. comme je me souviens sur la presse arrière, vous devez supprimer la transaction fragment avant d'ajouter ou remplacer un nouveau. Transaction.remove ... –
oui, je le fais. –
alors ça marche? ou pas ? –