私は既にRecyclerView
のためにendlessScrollListener
を作成しました。私のonLoadMore
メソッドの中で、私はページの一番下にあるたびに新しいAPI呼び出しを行っています。 新しくデータを取得するために、私のapiCall
メソッドに新しいapi呼び出しの新しいパラメータを与える必要があります。私は1ページ目でAPI呼び出しを開始し、30はアイテム数をカウントします。次のapiコールには2,30、次に3,30などが必要です。 私はループのためにやっていると思っています。しかし誰もより良い方法を提案することができますか?RecyclerViewの無限スクロールと新しいAPIを呼び出して新鮮なデータを表示する
public void makeApiCall(int pageNumber, int pageSize) {
ApiCall.ApiCallRx apiCall = ApiCall.createRx();
Observable<Response<ApiObject>> observable =
apiCall.apiItems(ApiKey.apiKey, pageNumber, pageSize);
observable.observeOn(AndroidSchedulers.mainThread()).
subscribeOn(Schedulers.io()).
observeOn(AndroidSchedulers.mainThread()).
subscribe(new Subscriber<Response<ApiObject>>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
Log.d("MainActivity", "Call Failed"+ e.getMessage());
}
@Override
public void onNext(Response<ApiObject> apiResponse) {
callSuccess(apiResponse);
Log.d("MainActivity", "Call Success");
}
});
}
private void callSuccess(Response<ApiObject> apiResponse) {
apiItems = apiResponse.body().getProducts();
objectAdapter = new ObjectAdapter(apiItems);
recyclerView.setAdapter(objectAdapter);
}
private void setScrollListener(){
recyclerView.addOnScrollListener(new EndlessRecyclerViewScrollListener(linearLayoutManager) {
@Override
public void onLoadMore(int page, int totalItemsCount) {
makeApiCall(2,30);
}
});
}
私はあなたのような 'RecyclerView'を使用しています。そしてそれはとてもうまくいっています。このように問題はありますか? –
リサイクラービューに問題はありません。スクロールリスナーは私が望むように動作しません。 – MikeB
okey。あなたが望むものは、私がbottomに行くとき、私のrecyclerlerviewトリガーloadmoreメソッドです。毎回 ! –