Comment savoir si l'utilisateur a un défilement vers le haut ou le bas d'une listview/scrollview
J'essaie de savoir quand l'utilisateur a défiler vers le haut ou le bas de la liste et il ne peut pas défiler plus.
Maintenant, je suis en utilisant OnScrollListener de savoir ce que les éléments listview sont visibles.
listview.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if (totalItemCount - visibleItemCount == firstVisibleItem) {
//last item visible
}
if (firstVisibleItem == 0) {
//first item visible
}
}
});
- D'accord, alors pourquoi votre solution ne marche pas? Ce qui ne fonctionne pas?
- parce qu'il ne me dise pas que j'ai besoin de savoir quand l'utilisateur a défiler vers le haut ou le bas de la liste et il ne peut pas faire défiler plus.
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé une solution en vérifiant le décalage de la première ou de la dernière rubrique, lorsque le décalage de ces éléments est 0, alors nous avons atteint le bas/haut de la
listview
.Essayer de cette façon,
adaptateur méthode getView appel lorsque vous faites défiler listview
vérifier la position lorsque votre position est égale à la taille des données affichage de la liste de sorte que vous êtes sur le dernier élément de la liste
Si vous utilisez un adaptateur personnalisé avec votre
listview, puis d'utiliser et de profiter de cette réponse:
https://stackoverflow.com/a/55350409/1845404
La carte de la méthode getView détecte lorsque la liste a été défile vers le dernier élément. Il ajoute également de correction pour les rares fois où certains position antérieure, même après que la carte a déjà rendu de la dernière vue.