2010-08-29 4 views
2

Im en utilisant ListView pour afficher certaines données personnalisées, une fois les données mises à jour dans l'adaptateur j'appelle notifyDatasetChanged(), ainsi la vue sera mise à jour, tout fonctionne bien, Mon problème cependant est que je voudrais exécuter une animation une seule fois sur les éléments qui ont été modifiés lors de la mise à jour de l'adaptateur. Actuellement, je conserve une copie de tous les objets modifiés et j'ai essayé d'animer les éléments corrects via l'appel getView().Android ListView animation de vues à l'intérieur de l'adaptateur qui a été mis à jour

Toutefois, si je le fais une seule fois pour chaque appel getView, je ne vois pas d'animation la plupart du temps sur les éléments qui ont changé. Si je continue à le faire dans les appels getView successifs, je vois l'animation sur les éléments qui ne changent pas aussi bien et ceux qui ont changé sont animés encore et encore. Im devinant quelquefois android appelle le getView() pour d'autres raisons que montrant la vue générée immédiatement, et c'est la raison pour laquelle cela ne fonctionne pas si je le fais une seule fois.

Quelle est la bonne façon de faire cela?

Merci, Totem.

Répondre

0

Si quelqu'un est a ce problème et la manière autour d'elle est d'étendre listview et passer outre

onMeasure(int widthMeasureSpec, int heightMeasureSpec) 

et à l'intérieur régler manuellement la taille avec

setMeasuredDimension() 

assurez-vous de ne pas appeler le super onMeasure() car il appellera getview sur toutes les vues de vos enfants avec une vue jetable juste pour les mesurer.

Questions connexes