Dans mon FragmentActivity
j'utilise plusieurs fragments. Lorsque la configuration est modifiée (en rotation), le système détruit et recrée chaque fragment.
J'essaie d'utiliser ces fragments recrééesCertains fragments sont perdus à la rotation
mFragment = getSupportFragmentManager().findFragmentById(R.id.fragment_frame);
et le mettre à la disposition nouvelle
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragment_frame, mFragment)
.commit();
mais rencontrer un comportement étrange: plusieurs fragments sont perdus. ils ne sont plus affichés sur l'écran. à leur place est vide.
Bien que les journaux montrent que les fragments sont bien re-crée, mais montre en outre que le fragment est de nouveau détruit, à nouveau créé et détruit à nouveau.
Je construis un projet de test pour le problème du spectacle plus clairement et sans cosse.
et que des résultats tangibles (réputation ne suffit pas d'insérer des images)
Activity started picture
Activity rotated picture
A, B, C, D est un fragments
Comme vous pouvez le voir après la configuration a changé certains fragments sont perdus (B, D)
me dire ce que je fais mal
est ici le code pour aider (Edit: code pousser à GitHub pour pour le rendre plus facile d'essayer)
https:// github.com/nailgilaziev/TestFragmentsRetain
p/s désolé liens
ici log chat après je tourne dispositif
MainActivity: onPause Activity
MainActivity: onStop Activity
MainActivity: onDestroy Activity
A: onDestroyview
A: onDestroy
B: onDestroyview
B: onDestroy
C: onDestroyview
C: onDestroy
D: onDestroyview
D: onDestroy
MainActivity: onCreate Activity
A: onCreate
B: onCreate
C: onCreate
D: onCreate
MainActivity: replaced
MainActivity: onStart Activity
A: onCreateView
B: onCreateView
C: onCreateView
D: onCreateView
<--before this point all fine and then strange behavior began
for the lost fragments(B,D) are performed unnecessary calls-->
B: onDestroyview
B: onDestroy
D: onDestroyview
D: onDestroy
D: onCreate
D: onCreateView
MainActivity: onResume Activity
Vérifiez ma réponse ci-dessous et faites un essai, n'oubliez pas de upvote si ma solution fonctionne pour vous :): http://stackoverflow.com/questions/16630502/fragmentadapter-doesnt-hold-the-good- reference-of-the-fragment/16630812 # 16630812 –
@Yann Non, malheureusement, cela n'aide pas. 'setRetainInstance (true)' stocke uniquement l'objet en mémoire, mais n'est toujours pas ajouté dans la nouvelle présentation. Je vais ajouter un chat sur la question d'origine, peut-être que cela aidera – nail