java RecyclerView无休止的滚动
我知道关于同一个问题有很多问题,但我无法找到我的问题。当我在我的HttpRequest类中打印URL时,它显示了正确的URL,但仍然加载相同的数据
recyclerView.addOnScrollListener(new asd(manager ) {
boolean loading = false;
int scrollIndex = 1;
@Override
public void onScrolledToEnd() {
if(!loading){
loading = true;
try {
scrollIndex = scrollIndex+10;
String url = "https // xyz com?q=" + query + "&scrollIndex="+ scrollIndex + "&key=" + getResources().getString(R.string.api_key);
new HttpRequest(url,SearchActivity.this).execute();
adapter.notifyItemRangeChanged(list.size(),10);
adapter.notifyDataSetChanged();
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
loading = false;
}
});
这是OnScrollListener
public abstract class asd extends RecyclerView.OnScrollListener {
public static String TAG = asd.class.getSimpleName();
// use your LayoutManager instead
private LinearLayoutManager llm;
public asd(LinearLayoutManager sglm) {
this.llm = sglm;
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (!recyclerView.canScrollVertically(1)) {
onScrolledToEnd();
}
}
public abstract void onScrolledToEnd();
}
# 1 楼答案
我用这个,它是有效的,也许你必须围绕着价值观玩一点,以适应你的具体情况。不过,我希望它能有所帮助:
这里
pageSize
是我每次加载的元素数;loadMoreItems()
方法负责从internet获取数据并通知适配器# 2 楼答案
用这个
创建新类