Quelle est la différence entre " ListView.invalidateViews()` et 'Adaptateur.notifyDataSetChanged()'?
Quelle est la différence entre ListView.invalidateViews()
et Adapter.notifyDataSetChanged()
?
Vous devez vous connecter pour publier un commentaire.
Oui, il est.
ListView.invalidateViews()
est-à-dire l'ListView à la nullité de tous ses enfants de l'élément de vues (redessiner).Noter qu'il n'y a pas besoin d'être un nombre égal de points de vue que d'éléments. C'est parce que d'une ListView recycle ses point de vues et se déplace autour de l'écran de manière intelligente pendant que vous faites défiler.
Adapter.notifyDataSetChanged()
d'autre part, est-à-dire à l'observateur de la carte que le contenu de ce qui est en cours d'adaptation ont changé. Avisant le jeu de données modifiées seront la cause de la liste d'appeler vos cartes de méthodes pour régler les barres de défilement, régénération de point de vues, etc...La plupart du temps que vous souhaitez utiliser
notifyDataSetChanged
au lieu deinvalidateViews
, mais cela dépend de ce que vous essayez d'accomplir.invalidateViews
sera utile?invalidateViews
ne sera utile que si vous avez besoin de redessiner les éléments visibles et pourtant rien n'a changé...invalidateViews
serait de changer la taille de police de votreListView
: vous ne touchez pas les données, mais le rendu.