2010-10-26 10 views
3

Est-ce que quelqu'un a des suggestions pour cela? À l'heure actuelle, une nouvelle ligne est ajoutée à la base de données et j'appelle requery(). Je souhaite que les nouvelles lignes soient animées lorsqu'elles apparaissent pour la première fois. De nombreuses additions de lignes se produiront au milieu de la liste, et non en haut ou en bas. Je voudrais que ceux-ci soient animés d'une manière ou d'une autre afin que l'utilisateur puisse les voir immédiatement.Animer de nouvelles lignes dans ListView avec un CursorAdapter

Je pensais peut-être avoir un hashmap (ou une structure de données) dans mon adaptateur qui contient l'identifiant d'une ligne particulière et un booléen indiquant si oui ou non il a été vu. Dans bindView, le booléen de l'identifiant de cette ligne est coché et, s'il est vrai, il anime un clignotement quelconque, puis met à jour la structure de données. Est-ce que cela semble plausible?

De même, lorsque le curseur est requis, j'aimerais faire défiler la liste jusqu'à l'emplacement de la nouvelle ligne. Malheureusement, je ne pense pas que je puisse connaître sa position sans forcer brutalement à travers la liste jusqu'à ce que je la trouve. Aucune suggestion?

Répondre

0

Il semble que vous connaissiez déjà la réponse à votre question. Oui, un HashMap qui mappe les identifiants d'éléments sur "déjà visualisé" sonne comme une bonne solution à ce problème. Si un élément est nouveau, vous pouvez appliquer une animation à la vue de l'élément lorsque cet élément est rendu dans bindView. Vous pouvez également utiliser la méthode smoothScrollToPosition dans la classe ListView pour faire défiler jusqu'à la première ligne qui est nouvelle.

Pour remplir le hashmap vous devez parcourir tous les éléments, vous pouvez également enregistrer le premier élément qui est également nouveau à ce moment-là.