Thực hiện một OnScrollListener
trong lớp hoạt động của bạn và sau đó sử dụng đoạn mã sau:
int currentFirstVisibleItem, currentVisibleItemCount, currentTotalItemCount;
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
this.currentFirstVisibleItem = firstVisibleItem;
this.currentVisibleItemCount = visibleItemCount;
this.currentTotalItemCount = totalItemCount;
}
public void onScrollStateChanged(AbsListView view, int scrollState) {
this.currentScrollState = scrollState;
this.isScrollCompleted();
}
private void isScrollCompleted() {
if (currentFirstVisibleItem + currentVisibleItemCount >= currentTotalItemCount) {
if (this.currentVisibleItemCount > 0
&& this.currentScrollState == SCROLL_STATE_IDLE) {
//Do your work
}
}
}
Nếu bạn đang sử dụng AsyncTask
để cập nhật dữ liệu của bạn, sau đó bạn có thể bao gồm thông tin sau trong số PostExecute()
của bạn để duy trì vị trí Di chuyển:
list.setAdapter(adapter);
list.setSelectionFromTop(currentFirstVisibleItem, 0);
Tôi hy vọng điều này sẽ hữu ích.
Nguồn
2012-08-13 10:29:39
vui lòng bao gồm mã của bạn. –