Android 在RecycleView中加载图像

Android 在RecycleView中加载图像,android,android-recyclerview,retrofit2,rx-java2,Android,Android Recyclerview,Retrofit2,Rx Java2,在recyclerview中从json收集图像。当我们到达结尾时,如何加载下一页?我只是在学习使用rxjava2。我要求你不要严格地判断和暗示我做错了什么。我将侦听器挂在适配器内部的onBind中: @Override public void onBindViewHolder(@NonNull ImageViewHolder holder, final int position) { Hit hit = hits.get(position); Picasso.get().load(hit.get

在recyclerview中从json收集图像。当我们到达结尾时,如何加载下一页?我只是在学习使用rxjava2。我要求你不要严格地判断和暗示我做错了什么。我将侦听器挂在适配器内部的onBind中:

@Override public void onBindViewHolder(@NonNull ImageViewHolder holder, final int position) {
Hit hit = hits.get(position);
Picasso.get().load(hit.getLargeImageURL())
        .into(holder.imageViewPreview);
if (loadMoreListener != null && !isLoading && !noMore && position == getItemCount() - 1) {
    isLoading = true;
    loadMoreListener.loadMore();
}
我试图通过将下一页的编号传递给参数来实现加载下一页的激活:

adapter.setLoadMoreListener(new ImageAdapter.LoadMoreListener() {
        @Override
        public void loadMore() {
            Toast.makeText(MainActivity.this, "Конец", Toast.LENGTH_SHORT).show();
            page++;
            viewModel.loadImages(searchQuery, page);

            adapter.endLoading();
            adapter.setNoMore(true);
            adapter.notifyDataSetChanged();
        }
    });
发生启动错误-当RecyclerView正在计算布局或滚动androidx.RecyclerView.widget.RecyclerView时,无法调用此方法

LoadImages()方法代码:

 public void loadImages(String query, int page){
NetworkService networkService  =  NetworkService.getInstance();
compositeDisposable = new CompositeDisposable();
Disposable disposable = networkService.getJSONApi()
        .getResponse(query, page)
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(new Consumer<Response>() {
            @Override
            public void accept(Response response) throws Exception {
                deleteHits();
                insertHits(response.getHits());
            }
        }, new Consumer<Throwable>() {
            @Override
            public void accept(Throwable throwable) throws Exception {
                Toast.makeText(getApplication(), throwable.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });

compositeDisposable.add(disposable);
public void loadImages(字符串查询,int页){
NetworkService NetworkService=NetworkService.getInstance();
compositeDisposable=新的compositeDisposable();
一次性=networkService.getJSONApi()
.getResponse(查询,第页)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.订阅(新消费者){
@凌驾
公共void接受(响应)引发异常{
deleteHits();
insertHits(response.getHits());
}
},新消费者(){
@凌驾
public void accept(Throwable Throwable)引发异常{
Toast.makeText(getApplication(),throwable.getMessage(),Toast.LENGTH_SHORT).show();
}
});
可合成。添加(一次性);

}尝试用以下代码通知适配器:

recyclerview.post(new Runnable() {
     @Override
     public void run() {
         myadapter.notifyDataSetChanged();
     }
});

同时检查:

尝试用以下代码通知适配器:

recyclerview.post(new Runnable() {
     @Override
     public void run() {
         myadapter.notifyDataSetChanged();
     }
});

同时检查:

谢谢。伟大的链接!谢谢你。伟大的链接!