RecyclerView OnScrollListener() Question
Que j'ai autour de 32 enregistrements en json, je suis en utilisant RecyclerView pour leur montrer et j'ai mis en œuvre OnScrollListener(...)
Question
J'ai commencé une Activité, je l'ai récupéré tous les 32 dossiers, maintenant, quand je fais défiler, pourquoi je suis de nouveau se même 32 enregistrements, encore et encore, chaque fois que je fais défiler, voici ma mise en œuvre de OnScrollListener()
public void initializeOnScrollForRecyclerView() {
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
int visibleItemCount = recyclerView.getLayoutManager().getChildCount();
int totalItemCount = recyclerView.getLayoutManager().getItemCount();
int pastVisiblesItems = ((LinearLayoutManager) recyclerView.getLayoutManager()).findFirstVisibleItemPosition();
if (!isLoading) {
if ((visibleItemCount + pastVisiblesItems) >= totalItemCount) {
isLoading = true;
mPostPresenter.loadPosts(false);
}
}
}
});
}
- Ce n'mPostPresenter.loadPosts(faux) faire? prend-il en charge json de nouveau?
- vérifiez maintenant que j'ai posté plus de code
- J'ai ajouté une réponse un coup d'oeil et voir si cela résout votre problème. si elle ne marche pas, laissez-moi savoir et je vais l'étudier davantage.
Vous devez vous connecter pour publier un commentaire.
La mise en Œuvre semble être correct, mais pour une condition d'échec, essayer dy > 0, comme ceci (Également mettre cela dans le OnCreate de l'Activité) :
Vous utilisez cette
Ce qui signifie une fois que vous avez consulté 22 dossiers que vous chargez à nouveau. Et lors du chargement de nouveau, vous obtenez même des données et en les ajoutant à votre liste.
Je vois que vous êtes en utilisant RXjava. Lorsque vous vous abonnez à loadPost vérifier quelles sont les données de votre observable est électroluminescentes. je pense que sa émettant à nouveau les mêmes données que j'.e votre 32 enregistrements et les enregistrements sont ajoutés à nouveau et c'est une boucle sans fin.
Voici une autre façon de déclencher quelque chose lorsque le dernier élément est atteint