Android 使用recyclerView的PagingLibrary无法停止loadAfter()

Android 使用recyclerView的PagingLibrary无法停止loadAfter(),android,android-recyclerview,android-paging,Android,Android Recyclerview,Android Paging,loadAfter()无法停止,即使我没有滑动RecyclerView。 它一直在调用onBindView->loadAfter() 我尝试调试,找到以下内容: 方法loadAroundInternal在类连续页面列表中 int appendItems = getAppendItemsRequested(mConfig.prefetchDistance, index, mStorage.getLeadingNullCount() + mStorage.getStorageCount()); 索

loadAfter()无法停止,即使我没有滑动RecyclerView。 它一直在调用onBindView->loadAfter()

我尝试调试,找到以下内容: 方法loadAroundInternal在类连续页面列表中

int appendItems = getAppendItemsRequested(mConfig.prefetchDistance, index, mStorage.getLeadingNullCount() + mStorage.getStorageCount());
索引保留+,而回收视图中的getBindView更大 附件项始终大于0

我不确定,但我想也许

network->appendPage->notifyInserted->bindView->loadAfter->network
然后recyclerView适配器在BindView上执行。但是bindViewHolder不应该调用哪个位置。所以它不能停止

我不知道我是对是错,我也不知道如何解决它

以下是我编写的一些相关代码:

@Override
public void onBindViewHolder(@NonNull BaseViewHolder holder, int position) {
    VB binding = DataBindingUtil.getBinding(holder.itemView);
    setData(binding, getItem(position));
    binding.executePendingBindings();
}
在我自己的PagingDataSource中,它扩展了PageKeyedDataSource

@Override
public void loadAfter(@NonNull LoadParams<Integer> params, @NonNull LoadCallback<Integer, T> callback) {
    singleCreator.createSingle(params.key, params.requestedLoadSize)
            .subscribe(new SingleObserver<Page<T>>() {
                @Override
                public void onSubscribe(Disposable d) {

                }

                @Override
                public void onSuccess(Page<T> tPage) {
                    callback.onResult(tPage.list, tPage.pageNumber + 1);
                }

                @Override
                public void onError(Throwable e) {

                }
            });

}

public interface SingleCreator<T> {
    SingleSubscribeProxy<Page<T>> createSingle(int page, int pageSize);
}
@覆盖
public void loadAfter(@NonNull LoadParams params,@NonNull LoadCallback callback){
singleCreator.createSingle(params.key、params.requestedLoadSize)
.subscribe(新的SingleObserver(){
@凌驾
认购的公共无效(一次性d){
}
@凌驾
成功时公开作废(第页){
callback.onResult(tPage.list,tPage.pageNumber+1);
}
@凌驾
公共无效申报人(可丢弃的e){
}
});
}
公共接口创建程序{
SingleSubscribeProxy createSingle(int page,int pageSize);
}
如果有其他需要,我会编辑这个问题

=====================================

添加消息:我发现如果我为recyclerView的高度设置了一个绝对值,比如100dp,它就可以正常工作。但在包装内容并匹配父项时解决问题


因此,现在的问题是:当nestedScrollView中的两个recyclerViews具有wrap\u内容或match\u父对象时,bindView无法停止loadAfter(),这是一种分页库的方法。

那么发生这种情况的原因是什么 当网络结果返回时,recycleView将刷新。 因为它位于nestedScrollView中,所以没有确切的高度。 然后在屏幕上更改->获取项目->网络

对我来说,解决办法是 编写一个实现嵌套滚动父项2的自定义线性布局