Exploiter onScrolledd dans addOnScrollListener

Bonjour,

Pour surveiller un recycler, j’ai impléménté un listener: addOnScrollListener.
Dès que je scrolle, je récupère bien l’événement dans onScrolled. Mais j’ai 2 callback (j’imagine qu’il y en a 1 pour le début du scroll et un pour la fin du scroll).

Ce qui me pose pb, c’est que je n’arrive pas à utiliser la fonction findFirstVisibleItemPosition(). Je récupère toujours -1 (au lieu de la position du 1er item visible dans le recycler).

Pouvez-vous m’aider à utiliser findFirstVisibleItemPosition() ?
Merci d’avance.

Marc

Salut @Marc1,

Il faut que tu sois plus clair dans tes explications.

Dis-nous ce que tu aimerais faire et le but de ta logique, car tu peux être sur la bonne voie, comme ne pas l’être et nous n’arriverons pas à trouver la solution.

Donc, explique ce que tu veux faire et il y aura très probablement une réponse d’un des membres du forum.

Bonjour TonyF,

Mon but est de récupérer à chaque scroll utilisateur, la position et le contenu du dernier item visible (après le scroll).
Une chose remarquée: la mise à jour de la position après scroll est faite avant que le vue ne se rafraichisse (un peu déroutant).

J’ai avancé entre temps. Mais j’ai toujours un pb:

  • lorsque je veux récupérer le dernier item visible de mon recycler avec findLastCompletelyVisibleItemPosition(), je récupère bien la position de celui-ci, mais lorsque je lis le textview de la vue, cela ne correspond pas.

Ex: le dernier item visible est en position 4 (ce qui est correct), mais je récupère la valeur du textview de la position 2 (pour info, mon recycler contient 3 items visibles).
Merci.

Marc

Alors, après avoir regardé la doc Android sur les RecyclerView, j’utiliserais les méthodes suivantes :

  • onScrollStateChanged pour savoir quand la position change.

  • onChildDetachedFromWindow pour savoir quand un élément est supprimé, à voir si c’est quand il disparaît de l’écran.

Lien de la doc :

https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView