Comment faire défiler vers le bas de ListView par programmation?

Après avoir appelé notifydatasetchanged(); Je veux faire défiler vers le bas de la liste pour que l’utilisateur puisse voir le dernier enregistrement de la liste.

(J’écris le module de conversation pour que, dans ce but, le dernier enregistrement en bas de la liste soit visible)

Quelqu’un peut-il me guider comment y parvenir?

Essayer

 listView.post(new Runnable(){ public void run() { listView.setSelection(listView.getCount() - 1); }}); 

Le post semble être nécessaire dans mon expérience, surtout si vous avez récemment mis à jour la liste.

Je sais que cela a été répondu et vous avez pris la réponse et c’était il y a plus d’un an. Mais le meilleur moyen de le faire est le mode Transcript. Pour une démonstration, consultez la démo de l’API Android sous Vues> Listes> Transcription.

Vous définiriez les éléments suivants sur votre vue liste dans le XML.

 android:stackFromBottom="true" android:transcriptMode="alwaysScroll" 

Cela fonctionnera toujours à chaque fois que vous appelez notifyDataSetChanged() . Vous pouvez définir android:transcriptMode à normal place si vous souhaitez obtenir un résultat encore meilleur pour les applications de discussion: il ne défilera vers le bas que si le dernier élément était déjà visible. De cette façon, vos utilisateurs peuvent voir la conversation précédente sans interruption lorsque d’autres utilisateurs discutent.

  • mode transcription
  • emstackr de bas

Je sais qu’il est très tard pour répondre, mais peut-être que cela aidera quelqu’un. Utiliser android:transcriptMode="alwaysScroll" forcera le listview à défiler vers le bas (comme ici nous avons utilisé android:stackFromBottom="true" ) même si vous essayez de faire défiler le haut ce qui est généralement nécessaire la plupart du temps. Donc, au lieu d’ android:transcriptMode="alwaysScroll vous pouvez utiliser android:transcriptMode="normal qui se comportera comme l’ android:transcriptMode="alwaysScroll l’application de chat et ne forcera pas la liste de défilement toujours si l’utilisateur veut voir le contenu en haut.