setOnScrollListener无限循环和加载没有在GridView中滚动?
问题描述:
我有一个在gridview中实现setOnScrollListener的问题,当新的数据连续加载到没有用户滚动的循环中。我想等待用户滚动到结尾,然后才能加载新数据。如何做到这一点?这是给了我无限循环无需滚动代码:setOnScrollListener无限循环和加载没有在GridView中滚动?
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.
}
});
答
OnScrollListener,具有为您提供信息紧靠firstVisibleItem
,第一个可见单元格,visibleItemCount
的指数onScroll
,可见细胞和totalItemCount
的数量列表适配器中的项目数量。如果您在下面的方法实现它的threshoid totalItemCount - 10
到达时,
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if ((firstVisibleItem + visibleItemCount) >= totalItemCount - 10) {
load_more_data();
}
}
您的应用程序将启动加载下一个项目。
答
请试试这个。
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();
}
}
});
+0
嘿我试过这段代码,但问题是一样的。它是自动加载数据而不是等待滚动,并替换项目而不是添加 –
是的,但它没有滚动发生?它会自动运行吗? –
你是什么意思*自动*? – Blackbelt
automaticaly - 没有用户滚动,它只是加载应用程序启动,直到没有更多的数据,并在gridview中替换项目,而不是等待滚动和添加项目到gridview –