Je voudrais m'assurer que la liste défile jusqu'en bas, après avoir mis à jour la vue de liste en utilisant listAdapter, afin qu'elle affiche le dernier élément entré dans la liste. Comment puis-je faire ceci ?
J'ai essayé mais pas de chance:
lv.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
Merci
Réponses:
En supposant que vous sachiez quand les données de la liste ont changé, vous pouvez dire manuellement à la liste de défiler vers le bas en définissant la sélection de liste sur la dernière ligne. Quelque chose comme:
la source
Vous devez utiliser ces paramètres dans votre vue de liste:
Faire défiler
lv.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
Placez la tête de liste en bas
lv.setStackFromBottom(true);
Vous pouvez également définir ces paramètres en XML, par exemple. comme ça:
la source
Une combinaison de TRANSCRIPT_MODE_ALWAYS_SCROLL et setSelection l'a fait fonctionner pour moi
la source
J'ai réussi à l'utiliser en réponse à un clic sur un bouton, donc je suppose que vous pouvez également l'utiliser après avoir mis à jour votre contenu:
la source
Pour obtenir ceci dans un ListFragment:
Ajout de cette réponse parce que si quelqu'un fait une recherche google pour le même problème avec ListFragment, il trouve juste cela ..
Cordialement
la source
Utilisation: placez la tête de la liste en bas
lv.setStackFromBottom(true);
A fonctionné pour moi et la liste défile automatiquement vers le bas lors de sa première visibilité. La liste défile alors comme il se doit avec
TRANSCRIPT_MODE_ALWAYS_SCROLL
.la source
j'utilise
pour ajouter des entrées en bas, et les anciennes entrées défilent en haut, comme une transcription de chat
la source
getListView().smoothScrollToPosition(getListAdapter.getCount() - 1);
sur place pour faire défiler vers le bas au début de l'activité.La solution la plus simple est:
la source
Le mode de transcription est ce que vous voulez et est utilisé par Google Talk et l'application SMS / MMS. Appelez-vous correctement notifyDatasetChanged () sur votre adaptateur lorsque vous ajoutez des éléments?
la source