Ich weiß, es gibt viele Fragen zum gleichen Problem, aber ich bin nicht in der Lage, mein Problem zu finden. Wenn ich URL in meiner HttpRequest-Klasse drucke, wird zwar die richtige URL angezeigt, aber immer noch dieselben Daten.RecyclerView Endless Scroll
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;
}
});
Hier ist 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();
}
Wie kann ich durch api Paginieren? ist meine Implementierung von loadMoreItems() korrekt? – user6556461
Das liegt an Ihnen, ich weiß nicht, wie Ihre API funktioniert –
Es erfordert StartIndex in URL, aus dem ich paginate alle 10 Elemente und inkrementiere StartIndex um 10, Problem ist mit Ihrem Code mein StartIndex um 10 nur einmal und Elemente hinzugefügt werden immer von der vorherigen URL – user6556461