Я хотел бы реализовать бесконечную прокрутку в компоненте ListView 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 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