J'ai un ListView
personnalisée avec des lignes. Lorsque l'une de ces lignes est
cliqué, la liste des données est régénéré. Je voudrais la liste de
faites défiler vers le haut lorsque cela se produit.
J'ai d'abord essayé d'utiliser setSelection(0)
dans chaque ligne, OnClickListener
pour atteindre cet objectif, mais a échoué (je crois parce que l' ListView
perd sa position de défilement lorsque ses données sont invalidés - donc mon appel à l'
setSelection est annulée. Je ne comprends toujours pas comment la ListView
décide où faites défiler jusqu'à après l'invalidation, tout de même).
La seule solution de travail, je sais de a été donné par Romain Guy ici: http://groups.google.com/group/android-developers/browse_thread/thread/127ca57414035301
Il implique (View.post
)ing l'appel à _listView.setSelection(0)
. J'
trouvé pour faire assez mal.
La nouvelle liste générée s'affiche avec son défilement emplacement inchangé
et il y a un retard considérable avant qu'il défile en arrière vers le haut.
Est-il meilleure façon d'obtenir cette fonctionnalité?
Toute aide serait grandement appréciée.
Merci!