Augmentez les performances d'Android ViewPager

Je crée une application Android avec la cible sur 2.2. Je veux toujours utiliser le ViewPager fourni dans le fichier android.support-v4.jar.

J'utilise un FragmentPagerAdapter en combinaison avec Fragment pour afficher le contenu. Chaque fragment contient un WebView, affichant des données html.

Faire défiler un WebView de haut en bas fonctionne très bien, mais le passage entre les pages dans le ViewPager se comporte très saccadé et pas du tout aussi lisse que le défilement de la WebView.

Est-il possible d'augmenter les performances de défilement du ViewPager, peut-être quelque chose comme ConvertView de BaseAdapter?

Je suppose que je pourrais charger l'url dans un fil de fond, mais d'après ce que j'ai entendu ce n'est pas la meilleure pratique.

Toutes les suggestions seraient super, merci.

0

2 Réponses

Je me suis rendu compte que vous pouviez utiliser le

viewPager.setOffscreenPageLimit(items.size());

conserver tous les éléments préchargés en mémoire et éviter les performances "gel/laggy" lors du défilement.

0
ajouté
Vous pouvez, tout dépend du nombre d'éléments que vous aurez et comment "UI lourd" chaque vue est. Ce que j'ai fait pour m'assurer que cela n'arriverait pas, c'était de coder en dur la taille des objets à quelque chose de beaucoup plus élevé que ce qui serait réaliste pour mon application.
ajouté l'auteur Slickelito, source
Cela pourrait être la pire solution que j'ai rencontrée. Vous ne voulez PAS charger toutes les pages en mémoire car l'interface utilisateur consomme beaucoup plus de mémoire que la simple conservation d'une liste de POJO en mémoire. Au contraire, quelque chose d'autre entraîne un ralentissement de votre chargement et vous pensez probablement à évaluer la façon dont vous créez l'interface utilisateur. Vous pourriez envisager de recycler les pages à la place.
ajouté l'auteur agrosner, source
Juste une question, peut-être une question idiote: ne serait-ce pas trop lourd le préchargement de tous les articles du viewpager?
ajouté l'auteur andrea.rinaldi, source
Je veux dire, je ne pourrais pas avoir une erreur comme OutOfMemory ou similaire?
ajouté l'auteur andrea.rinaldi, source
Je comprends ... J'ai dit ces choses parce que je suis en train de démarrer une application qui aura sûrement des images lourdes (de haute qualité, flou, trucs comme ça) à charger dans chaque fragment du ViewPager .. Mais, je vais les gérer comme ça doit être fait :)
ajouté l'auteur andrea.rinaldi, source

Vous devriez envisager de réutiliser le Fragments en fournissant une méthode pour réutiliser les fragments existants dans ViewPager et remplir ou rafraîchir l'interface utilisateur avec les nouvelles données.

0
ajouté