我有一个列表视图,其中有几个项目。我想检查列表是否向下滚动到最后一项,在这种情况下我想运行另一种方法。如何做到这一点?
答案 0 :(得分:5)
首先在构造函数中设置isLoading = false;
或onCreate
方法
mListView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if (mListView.getAdapter() == null)
return ;
if (mListView.getAdapter().getCount() == 0)
return ;
int l = visibleItemCount + firstVisibleItem;
if (l >= totalItemCount && !isLoading) {
// It is time to add new data. We call the listener
isLoading = true;
loadData();
}
}
});
并在函数loadData
中执行以下操作:
public void loadData() {
// send your request
// receive it by callback or asynctask
yourDataList.addAll(newItems);
adapter.notifyDataSetChanged();
isLoading = false;
}
答案 1 :(得分:0)
查看listView.getLastVisiblePosition()
。