Problème avec StackFromEnd et smoothScrollToPosition
RésoluBonjour,
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
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.
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.