2012-09-25 17 views

Odpowiedz

35

wdrożyć 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(); 
     } 
    } 
} 

jak wdrożyć i dodaj do swojego słuchacza pogrupowanych to wykryje na koniec pogrupowanych jako pozycja przewijania był na końcu listy prostu więcej danych. Podczas ładowania danych potrzebna jest jedna flaga do ładowania danych naraz, gdy pozycja przewijania się kończy. Więc jeśli dane są ładowane iw tym czasie przewijasz w górę, a następnie przewijasz w dół, to nie dostaniesz więcej danych do duplikacji.

+0

hai, u może mi powiedzieć jak dodać dane podczas przewijania dociera do dna w gridview stronie .in wise.i Próbuję to za 2 weeks.can u pomóc ja – ManiTeja

+1

dodaj dane do listy lub listy tablic lub tablic, które przekazałeś do adaptera dla widoku gridview i wywołaj adapter notifyDataSetChanged() po dodaniu danych w celu odświeżenia widoku siatki. – Pratik

+0

Aby uniknąć wielokrotnego wywoływania metody isScrollCompleted, dostosowałem metodę użycia progu, tj. Tylko wtedy, gdy liczba elementów jest widoczna. public void onScrollStateChanged (AbsListView view, int scrollState) { this.currentScrollState = scrollState; if ((jobAdapter.getCount() - (currentFirstVisibleItem + currentVisibleItemCount)) <= próg) { this.isScrollCompleted(); } } – Ajibola

Powiązane problemy