>

Android ListView 구성 요소에 끝없는 스크롤을 구현하고 싶습니다. 목록의 마지막 요소로 스크롤 할 때 목록보기의 맨 아래에 새 항목이 추가됩니다.


  • 답변 # 1

    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();
            }
        }
    }
    
    

    이 리스너를 구현하고 목록보기에 추가하면 스크롤 위치가 목록의 끝에 있었기 때문에 더 많은 데이터를 얻으므로 목록보기의 끝을 감지합니다. 데이터를로드하는 동안 스크롤 위치가 종료 될 때 한 번에 데이터를로드하려면 하나의 플래그가 필요합니다. 따라서 데이터가로드되고 그 시간 동안 위로 스크롤 한 다음 아래로 스크롤하면 중복에 대한 더 많은 데이터를 얻지 못합니다.

  • 답변 # 2

    OnScrollListener로 시도하십시오. 항목을 ListView 에 추가하십시오.  당신의

    public void onScroll(AbsListView view,
        int firstVisible, int visibleCount, int totalCount) {
        // Add the items
        }
    }
    
    

    그리고 adapter.notifyDataSetChanged() 설정  당신의 ListView 에 추가 된 항목을 표시합니다  여기에 onScrollListener 를 통합하는 방법에 대한 예가 있습니다.  ListView로

    <올>

    Android 무한 목록

    무한 스크롤 목록보기

    끝없는 ListView

관련 자료

  • 이전 c# - 리플렉션을 사용하여 클래스에서 DataTable을 만드시겠습니까?
  • 다음 html5 - Transition/CSS3를 사용하여 앵커로 스크롤