2011-06-01 5 views
1

geeks Hi!
est ici un problème en utilisant ListView.un problème en utilisant ListView

Lors de la génération d'une seule vue élément de la liste, dans la méthode de BaseAdapter.getView, une demande de données à distance async continue peut être émis, comme obtenir la photo d'une personne. Mais lorsque la réponse est de retour, l'affichage de l'élément de liste peut être réutilisé, car le mécanisme de ListView fonctionne. Je ne peux pas trouver le bon point de vue pour mettre la réponse à.

Comment avez-vous réparé ce problème?

Répondre

1

Comme vous le dites, il y a une bonne chance que le temps que vous avez chargé l'image que l'élément de liste est plus visible ou même existant. Donc, vous pouvez vérifier ce qui est à l'écran en utilisant ListView.getFirstVisiblePosition() et ListView.getLastVisiblePosition(), si c'est sur l'écran obtenir l'élément et définir l'image. Sinon, vous devez mettre en cache l'image (mémoire ou carte SD en fonction du nombre d'images et de leur taille) et la prochaine fois que getView() est appelée pour cet élément, utilisez simplement l'image mise en cache.

J'espère que cela aide.

0

Je crois que votre après est "chargement paresseux de l'image" + mise en cache. J'ai eu ma mise en œuvre via this answer. Le paquet s'appelle LazyList.

J'espère que cette aide

enter image description here