FragmentManager remplacer vs Ajouter
Dans mon application il ya un FrameLayout
sur laquelle je suis en ajoutant divers fragments
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragment_content, fragment, fargmentTag);
ft.commit();
Maintenant, il semble que lorsque j'utilise le ft.replace(R.id.fragment_content, fragment, fargmentTag);
puis dans d'autres endroits appel
getSupportFragmentManager().findFragmentByTag(fargmentTag);
Je reçois toujours null
.
Cependant si j'utilise add
au lieu de replace
ce problème est résolu mais un autre problème apparaît que chaque fragment est ajouté ontop de l'autre fragment, et je peux voir les autres fragments ci-dessous.
Je préfère utiliser replace
, mais j'ai besoin de le sauvé fragment de l'état. A noter également que je ne suis pas à l'aide de addToBackStack
.
OriginalL'auteur user1730789 | 2013-05-20
Vous devez vous connecter pour publier un commentaire.
Essayez ceci et cela fonctionne.
La différence, c'est quand vous voulez pour maintenir l'état vous utilisez commitAllowingStateLoss()[Normalement, votre état perdues lors de changement d'orientation] et à votre deuxième question, il serait de travailler.
ok. Merci. Ne pas avoir de code, avec moi, mais il obtiendra un essai.
est utilisé lorsque vous voulez mettre à jour de l'état?
oui maintenir l'état de l'application, vous perdez votre état de la demande sur les changements d'orientation.
OriginalL'auteur Thalaivar
Vous a tout simplement répondu à votre propre question. Utilisation
addToBackStack()
.L'essayer, mais oui, il le faut.
OriginalL'auteur Ahmad
FragmentManager:
fm = getSupportFragmentManager();
fm.executePendingxxxx
,essayer.OriginalL'auteur Tingyu Ruan