Подтвердить что ты не робот

Внедрение бесконечного прокрутки в ListView

Я хотел бы реализовать бесконечную прокрутку в компоненте ListView android, который добавит новые элементы в нижней части списка при прокрутке к последнему элементу в списке.

4b9b3361

Ответ 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 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