Comment faire pour ne conserver qu'une seule instance d'un fragment, lors de la commutation avec NavigationDrawer?
Mon Application démarre avec un AddressFragment. À partir de la NavigationDrawer je commence (entre autres) un nouveau AddressFragment avec:
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, new AddressFragment())
.addToBackStack(null)
.commit();
Mais j'aimerais juste revenir à la première instance. Comment pourrais-je le faire?
Ou plus générale, comment puis-je savoir, si une instance d'un fragment existe déjà, et puis commencer que, si oui, sinon en créer un?
Vous devez vous connecter pour publier un commentaire.
Lors de la création du fragment de définir une balise, puis plus tard, vous pouvez le trouver à travers le fragment de gestionnaire et de remplacer/créer en conséquence.
Première étape:
Optimiser le code actuel, de permettre à un Fragment d'avoir son propre "TAG"
Étape deux:
Quelque part dans votre application, vous aurez besoin pour déterminer si un fragment existe:
Étape trois:
effectuer fragment d'action
Première fois que vous créez le fragment d'une balise.
Lorsque vous voulez la remplacer essayer d'obtenir le fragment de tag et si elle renvoie null vous créez un nouveau
C'est testé réponse, Espérons que cela vous aidera
D'abord Faire ces domaines à l'échelle mondiale dans MainActivity
Maintenant dans onNavigationItemSelected() de mettre en œuvre comme celle
Maintenant gérer onbackpressed comme ci-dessous