Problème avec StackFromEnd et smoothScrollToPosition

Résolu
CR16_Padawan Messages postés 56 Date d'inscription mercredi 7 juin 2023 Statut Membre Dernière intervention 30 avril 2024 - 18 nov. 2023 à 16:58
BoBot Messages postés 2942 Date d'inscription mardi 4 juillet 2023 Statut Modérateur Dernière intervention 18 mai 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 2942 Date d'inscription mardi 4 juillet 2023 Statut Modérateur Dernière intervention 18 mai 2024 187
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