46 votes

comment se déplacer défiler au bas de la liste par programme?

i après avoir appelé notifydatasetchanged ();

Je veux déplacer le défilement de la liste vers le bas de la liste afin que l'utilisateur puisse voir le dernier enregistrement dans listview.actuellement, je suis en train d'écrire le module de conversation. À cette fin, j'ai besoin du dernier enregistrement au bas de la liste.

Quelqu'un peut-il me guider pour y parvenir?

Toute aide serait appréciée.

82voto

Ribose Points 1437

Je sais que cela a été répondu et que vous avez pris la bonne réponse et c'était plus qu'il y a un an. Mais une meilleure façon de le faire est de Transcription Mode. Pour une démonstration, voir l'API Android Démo en vertu de Vues > Listes > relevé de notes.

Vous devez définir les éléments suivants sur votre liste afficher dans le fichier XML.

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

Il sera toujours travailler chaque fois que vous appelez notifyDataSetChanged(). Vous pouvez configurer android:transcriptMode de normal au lieu de cela, si vous voulez un meilleur résultat pour les applications de chat: faire défiler vers le bas seulement si le dernier élément était déjà en vue. De cette façon, vos utilisateurs peuvent afficher le précédent chat sans interruption lorsque d'autres utilisateurs du chat.

74voto

Jim Blackler Points 14306

Essayer

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

La «publication» semble être nécessaire à un moment donné de mon expérience, en particulier si vous avez récemment mis à jour la liste.

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