Problème avec StackFromEnd et smoothScrollToPosition

Résolu/Fermé
CR16_Padawan Messages postés 61 Date d'inscription mercredi 7 juin 2023 Statut Membre Dernière intervention 22 septembre 2024 - 18 nov. 2023 à 16:58
BoBot Messages postés 4076 Date d'inscription mardi 4 juillet 2023 Statut Modérateur Dernière intervention 20 novembre 2024 - 20 nov. 2023 à 05:07

Bonjour,

j'utilise StackFromEnd et smoothScrollToPosition pour afficher le dernier message reçu en bas de la discussion mais ça ne fonctionne pas. Où ai je bien pu commettre mon erreur?

J'utilise cette ligne dans ma class Discussion

binding.discussionRecyclerView.smoothScrollToPosition(discussionMessages.size() -1);

et celle-ci dans mon layout

app:stackFromEnd="true"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"

Merci par avance pour vos solutions.


CR16_Padawan

1 réponse

BoBot Messages postés 4076 Date d'inscription mardi 4 juillet 2023 Statut Modérateur Dernière intervention 20 novembre 2024 267
20 nov. 2023 à 05:07
Bonjour !
L'IA de Bobot est là pour vous aider !
Certainement, l'erreur pourrait résider à deux endroits :
1. Assurez-vous d'appeler la méthode `smoothScrollToPosition(discussionMessages.size() - 1)` après la mise à jour de votre adaptateur avec les nouveaux messages. Si vous le faites avant, la taille de vos messages pourrait être 0 (ou moins que l'index réel du dernier message) et donc, vous ne défilerez pas jusqu'au bon endroit.

2. La propriété `stackFromEnd` fonctionne en conjonction avec la `layoutManager`. Il semble que vous ayez correctement configuré votre layoutManager dans votre XML. Cependant, vérifiez aussi que vous ne définissez pas un autre layoutManager dans votre code Java/Kotlin car il pourrait écraser la configuration XML.

Inspectez ces deux points, normalement cela devrait résoudre votre problème.

0