Prévenir ViewPager de détruire hors des vues d'écran
J'ai un ViewPager accroché à un FragmentPagerAdapter qui est l'affichage en trois fragments. Le ViewPager semble détruire hébergé fragment de la vue lorsqu'il est plus qu'un simple glissement de doigt loin de la position actuelle.
Ces points de vue sont tous de simples listes et cette optimisation est complètement inutile, donc, je tiens à le désactiver. Il est à l'origine de certains problèmes visuels, parce que les listes de présentation des animations appliquées et ces animations sont relus après qu'ils ont été détruits et recréés. Il montre aussi la barre de défilement animation d'intro à chaque fois (lorsque la barre de défilement est brièvement visible pour indiquer que le défilement est possible), ce qui peut être source de distraction, et la position de défilement est perdue dans le processus.
Il ne charge pas la troisième fragment jusqu'à ce que le premier balayage arrive, ce qui est problématique, parce que chaque fragment gère ses propres appels de service et je préfère avoir tous les trois pompiers en même temps lorsque l'activité charges. Avoir le troisième appel de service retardée est pas l'idéal.
Est-il un moyen de le convaincre ViewPager pour arrêter ce problème, et il suffit de garder tous mes fragments de mémoire?
Vous devez vous connecter pour publier un commentaire.
Dans révision 4 de l'accompagnement, une méthode a été ajouté à ViewPager qui vous permet de spécifier le nombre de pages à l'écran à utiliser, plutôt que la valeur par défaut est 1.
Dans votre cas, vous voulez spécifier 2, de sorte que lorsque vous êtes sur la troisième page, le premier n'est pas détruit, et vice-versa.
Par défaut, ViewPager recrée les fragments lorsque vous faites glisser la page. Pour éviter cela, vous pouvez essayer l'une de deux choses l'une:
1. Dans le onCreate() de vos fragments d'appel setRetainInstance(true).
2. Si le nombre de fragments est fixe & relativement petite, dans votre onCreate (), ajoutez le code suivant:
Si je me souviens bien, la deuxième option est la plus prometteuse. Mais je vous recommande d'essayer les deux et voir lequel d'entre eux travaillent.
"Définir le nombre de pages qui doivent être conservés pour chaque côté de la page en cours dans le point de vue de la hiérarchie dans un état d'inactivité. Pages au-delà de cette limite sera recréé à partir de l'adaptateur en cas de besoin."
http://developer.android.com/reference/android/support/v4/view/ViewPager.html#setOffscreenPageLimit(int)