检查android listview是否向下滚动到最后一项
问题描述:
我有一个列表视图,其中有多个项目.我想检查列表是否向下滚动到最后一项,在这种情况下,我想运行另一种方法.
I have a listview in which there are several items. I want to check whether the list is scrolled down to the last item, in which case I want to run another method.How to do that?
答
首先在构造函数中设置 isLoading = false;
或在 onCreate
方法中设置
at first set isLoading = false;
in the constructore or onCreate
method
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
中,您可以执行以下操作:
and in function loadData
you do something like:
public void loadData() {
// send your request
// receive it by callback or asynctask
yourDataList.addAll(newItems);
adapter.notifyDataSetChanged();
isLoading = false;
}