2012-09-25 3 views

Répondre

35

mettre en œuvre le onscrolllistener()

public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { 
    this.currentFirstVisibleItem = firstVisibleItem; 
    this.currentVisibleItemCount = visibleItemCount; 
} 

public void onScrollStateChanged(AbsListView view, int scrollState) { 
    this.currentScrollState = scrollState; 
    this.isScrollCompleted(); 
} 

private void isScrollCompleted() { 
    if (this.currentVisibleItemCount > 0 && this.currentScrollState == SCROLL_STATE_IDLE) { 
     /*** In this way I detect if there's been a scroll which has completed ***/ 
     /*** do the work for load more date! ***/ 
     if(!isLoading){ 
      isLoading = true; 
      loadMoreDAta(); 
     } 
    } 
} 

que vous implémentez et ajoutez cet écouteur à votre listview ce détectera la fin de listview que la position de défilement était à la fin de la liste simplement obtenir plus de données. Et pendant le chargement des données, vous avez besoin d'un drapeau pour charger les données à la fois lorsque la position de défilement se termine. Donc, si les données sont en cours de chargement et pendant ce temps, vous faites défiler vers le haut, puis faites défiler vers le bas, il n'y aura pas plus de données pour la duplication.

+0

hai, u peut me dire comment ajouter des données lorsque le défilement atteint vers le bas dans la page GridView .in wise.i suis en train ceci pour 2 weeks.can u aider moi – ManiTeja

+1

ajouter des données dans votre liste ou arraylist ou tableau que vous avez passé à votre adaptateur pour le gridview et appelez le notifyDataSetChanged() de l'adaptateur après que les données ont été ajoutées pour rafraîchir gridview. – Pratik

+0

pour éviter que isScrollCompleted soit appelé plusieurs fois J'ai ajusté la méthode pour utiliser un seuil, c'est-à-dire uniquement si ce nombre d'éléments est visible. public void onScrollStateChanged (vue AbsListView, int scrollState) { this.currentScrollState = scrollState; if ((jobAdapter.getCount() - (currentFirstVisibleItem + currentVisibleItemCount)) <= seuil) { this.isScrollCompleted(); } } – Ajibola

9

Essayez avec OnScrollListener Il suffit d'ajouter les articles à votre ListView dans votre

public void onScroll(AbsListView view, 
    int firstVisible, int visibleCount, int totalCount) { 

    // Add the items 

    } 
} 

Et, le réglage de votre adapter.notifyDataSetChanged() affiche les éléments ajoutés dans votre ListView Ici je vous donne quelques exemples que la façon d'intégrer la onScrollListener avec votre ListView

  1. Android Endless List

  2. Endless Scrolling Listview

  3. Endless ListView

Questions connexes