J'ai un problème concernant FragmentTransaction
. Donc je compte sur onDestroyView()
et onStop()
dans chaque Fragment
pour afficher ou masquer une barre d'outils en bas de l'activité. Voilà comment je fais la transaction:Android - Le fragment est ajouté au conteneur avant que le dernier fragment ne soit supprimé
getSupportFragmentManager().beginTransaction()
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.replace(R.id.activity_frame, fragment, tag)
.addToBackStack(tag)
.commit();
Quand je debug, il montre que la nouvelle Fragment
passe par son onCreateView()
avant la remplacer Fragment
passe par onDestroyView()
et onStop()
.
Cela vient de se produire récemment, je me suis rendu compte que la barre d'outils montrait un comportement anormal et que je n'avais pas eu l'occasion de le vérifier jusqu'à ce matin. Un indice sur ce ??
Alors, pourquoi? Je le pensais mais j'ai rétrogradé ma bibliothèque de support et ça ne change rien, je suppose que je n'ai pas downgraffé assez ... Btw c'est en fait la même barre d'outils exacte que l'activité gère. Je continue de le faire passer dans chaque fragment onDestroy ou à l'arrêt pour qu'il ne soit utilisé que dans ce fragment particulier, ou tout autre fragment qui en a besoin. –
Cela le rend encore plus simple. Vous pouvez contrôler la visibilité de la barre d'outils uniquement dans onCreateView() dans une base abstraite Fragment qui définit une méthode abstraite boolean showToolbar() que vos fragments doivent implémenter. Juste un peu de remue-méninges :) – tknell
Eh bien, je l'ai fait lol .. De cette réponse que vous avez donné, soulignant il y a une nouvelle méthode dans 'FragmentTransaction' qui est' .setAllowOptimization (false) 'rend tout retour à la normale, merci toi! Et oups je n'ai pas accepté ta réponse depuis hier, il était temps pour moi d'aller ailleurs lol –