J'ai une application à onglets, disons 2 onglets. Il a été initialement développé en utilisant ActivityGroup. Cependant, ayant réalisé que les multi-volets ne sont pas supportés dans ActivityGroup, j'ai décidé d'utiliser des fragments. Avant d'aborder le problème, laissez-moi vous parler de l'application.Conserver la vue sur le changement d'onglet de fragment
Alors, comme je l'ai dit avant qu'il ne soit une application à onglets
TabA---> Activity1---> Activity2---> Activity3
TabB---> Activity4---> Activity5----> Activity6
C'est le modèle de travail de mon ancienne application basée sur le groupe d'activités.
maintenant avec des fragments, cela changerait en quelque chose comme ci-dessous
FragmentActivity---> TabAFragment---> FragmentA1---> FragmentA2
|
---> TabBFragment---> FragmentB1---> FragmentB2
Chaque fragment se connecte au serveur pour les données sur la charge initiale.
Et dans la transaction, je remplace le fragment chaque fois que j'ajoute.
FragmentTransaction ft = manager.beginTransaction();
ft.replace(R.id.realtabcontent, fragment);
ft.commit();
Qu'est-ce que l'on observe
Je n'ai qu'une activité (FragmentActivity-où onglets sont créés) pour ces deux fragments de tabulation. Je partage cette activité pour tous les onglets. Par exemple, je charge le fragment B1 dans tabB- gonfle une vue, récupère des données du serveur et affiche dans un ListView. Ensuite, je passe à l'autre tabA et charge le fragmentA1. Jusqu'ici tout va bien. Maintenant, si je retourne à tabB, je veux voir le listView qui a été chargé plus tôt. Ce qui se passe, c'est que tout commence à partir de la case départ.
Ceci est mon expérience de première main avec des fragments. J'ai fait un peu de recherche; Cependant, cela n'a pas vraiment aidé à réparer le mien.
Comment conserver une vue déjà chargée?
Des pensées?