2012-09-25 42 views

Trả lời

35

thực hiện 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(); 
     } 
    } 
} 

như bạn thực hiện và thêm người nghe này để listview của bạn này sẽ phát hiện cho đến cuối listview như vị trí cuộn đang ở cuối danh sách chỉ nhận được nhiều dữ liệu hơn. Và trong quá trình tải dữ liệu, bạn cần một cờ để tải dữ liệu cùng một lúc khi vị trí cuộn đến hết. Vì vậy, nếu dữ liệu đang tải và trong thời gian đó, bạn cuộn lên rồi cuộn xuống sau đó nó sẽ không nhận được nhiều dữ liệu hơn cho dupplication.

+0

hai, u có thể cho tôi biết làm thế nào để thêm dữ liệu khi di chuyển hướng về phía đáy trong trang .in GridView wise.i đang cố gắng này cho 2 weeks.can u giúp tôi – ManiTeja

+1

thêm dữ liệu vào danh sách hoặc mảng hoặc mảng mà bạn đã chuyển tới bộ điều hợp của bạn cho khung nhìn GridView và gọi cho notifyDataSetChanged() của bộ điều hợp sau khi dữ liệu được thêm vào làm mới GridView. – Pratik

+0

để tránh isScrollCompleted được gọi là nhiều lần tôi đã điều chỉnh phương pháp để sử dụng ngưỡng, nghĩa là chỉ khi số mục đó hiển thị. void công khai onScrollStateChanged (chế độ xem AbsListView, int scrollState) { this.currentScrollState = scrollState; nếu ((jobAdapter.getCount() - (currentFirstVisibleItem + currentVisibleItemCount)) <= ngưỡng) { this.isScrollCompleted(); } } – Ajibola

9

Hãy thử với OnScrollListener Chỉ cần thêm các mục để ListView của bạn trong

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

    // Add the items 

    } 
} 

Và, thiết lập của bạn adapter.notifyDataSetChanged() sẽ hiển thị các mục được thêm vào trong ListView của bạn Ở đây tôi cung cấp cho bạn một số ví dụ mà làm thế nào để tích hợp các onScrollListener với bạn ListView

  1. Android Endless List

  2. Endless Scrolling Listview

  3. Endless ListView

Các vấn đề liên quan