43 votes

Conserver la position dans ListView après avoir appelé notifyDataSetChanged

J'utilise OnScrollListener pour ajouter dynamiquement des éléments à un ListView lorsque l'utilisateur fait défiler l'écran jusqu'en bas. Une fois que j’ai ajouté les données à l’adaptateur et que j’ai appelé notifyDataSetChanged, ListView revient au début. Idéalement, j'aimerais conserver le poste dans ListView. Des idées sur la façon dont je devrais faire cela?

98voto

Souvlaki Points 2118

Serait-ce ce que vous voulez?

 // save index and top position
int index = mList.getFirstVisiblePosition();
View v = mList.getChildAt(0);
int top = (v == null) ? 0 : v.getTop();

// ...

// restore
mList.setSelectionFromTop(index, top);
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X