当在没有用户滚动的循环中连续加载新数据时,我在gridview中实现setOnScrollListener时遇到问题。我想等待用户滚动到结尾,然后再加载新数据。怎么做到这一点?这是在不滚动的情况下给我无限循环的代码:
gv.setOnScrollListener(new EndlessScrollListener() {
@Override
public boolean onLoadMore(int page, int totalItemsCount) {
load_more_data();
// Triggered only when new data needs to be appended to the list
// Add whatever code is needed to append new items to your AdapterView
// customLoadMoreDataFromApi(page);
// or customLoadMoreDataFromApi(totalItemsCount);
return true; // ONLY if more data is actually being loaded; false otherwise.
}
});
答案 0 :(得分:0)
OnScrollListener,onScroll
为您提供firstVisibleItem
附近的信息,第一个可见单元格的索引,visibleItemCount
,可见单元格的数量和{{ 1}}列表适配器中的项目数。如果您使用以下方法实现它
totalItemCount
当达到阈值 @Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if ((firstVisibleItem + visibleItemCount) >= totalItemCount - 10) {
load_more_data();
}
}
时,你的app会开始加载下一个项目。
答案 1 :(得分:0)
请试一试。
gridView.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
if((firstVisibleItem + visibleItemCount) >= totalItemCount - 5)
{
load_more_data();
}
}
});