Android: Viewpager et FragmentStatePageAdapter

Je suis la conception d'une application qui permet aux utilisateurs de basculer entre plusieurs pages dans un ViewPager. J'ai eu du mal à essayer de comprendre comment il est possible de retirer un Fragment de l'instance à partir d'une page lorsqu'elle n'est plus visible sur l'écran, de les mettre en cache (pour, par exemple, une table de hachage), puis de la restaurer, de sorte que lorsque l'utilisateur revient à la page, les points de vue et tout le reste sera dans le même état qu'il était avant l'enlèvement. Par exemple, ma première page est un écran de connexion qui fait que certains éléments de mise en page sur la page visible/invisible sur une connexion réussie. Quand j'ai avancer assez de pages, puis retourner à la première page, la mise en page est remise à zéro. Cela devient plus un problème pour un autre de mes pages, qui contient un énorme, de défilement horizontale/verticale de la grille de données que j'utilise un thread en arrière-plan quand il s'initialise. J'utilise une boîte de dialogue de progression pour avertir l'utilisateur de la progression du chargement et cela devient vraiment ennuyeux à chaque fois que je charge.

J'ai donc fait quelques recherches...

J'ai parcouru le code source pour FragmentStatePageAdapter et dans le destroyItem() de rappel, l'état du Fragment de l'instance en cours de suppression est enregistré à une liste de tableaux. Lorsqu'une nouvelle instance du Fragment est en cours de création dans le instantiateItem() de rappel, si une instance d'un élément n'existe pas déjà (ils en gardent la trace à l'aide d'une liste de tableaux), un nouveau Fragment instance est créée et son état enregistré est initialisé avec le Fragment correspondant.SavedState de données. Malheureusement, ces données ne comprennent pas l'état que les points de Vue ont été en même si j'ai remarqué que pour les pages avec un GridView/ListView, l'état des points de Vue étaient en quelque sorte restauré (si je me défile à certaines position aléatoire, renversé quelques pages et revenait, il ne serait pas remise).

Selon l'API:

L'état enregistré ne peut pas contenir des dépendances sur d'autres fragments --
c'est qu'il ne peut pas utiliser putFragment(Bundle, String, Fragment) pour stocker une
fragment de référence, parce que la référence ne peut pas être valide lorsque cette
sauvé de l'état est utilisé plus tard. De même, le Fragment de la cible et le résultat
code ne sont pas inclus dans cet état.

Être un noob pour Android, je ne suis pas tout à fait sûr de comprendre la dernière instruction.

Cela étant dit, est-il un moyen pour mettre en cache la Vue de l'état? Si non, je pense que je vais juste aller de l'avant et aller avec laissant à tous le fragment de pages en mémoire.

OriginalL'auteur Android Noob | 2011-08-02