BaseRecyclerViewAdapterHelper
BaseRecyclerViewAdapterHelper copied to clipboard
加载更多,loadMoreComplete调用后会继续回调onLoadMore,导致连续加载
onLoadMore中又继续调用loadMoreComplete,导致数据一次就连续加载完了 正常应该滑到底部后再回调onLoadMore,但我还没滑动,onLoadMore就被回调了
我也遇到這個問題了,首次進來就調用了
是NestedScrollView的原因,我换用SmartRefreshLayout了,把NestedScrollView放到SmartRefreshLayout里面,就没这个问题了,BRVAH的加载更多放弃了
我是把SmartRefreshLayout-CoordinatorLayout-NestedScrollView,做了沉浸式,还是会首次调用
/** * adapter的上拉加载 */ if (homeMessageAdapter.getLoadMoreModule() != null) { homeMessageAdapter.getLoadMoreModule().setOnLoadMoreListener(() -> { //TODO:上拉加载数据 LogUtils.d("homeMessageAdapter 上拉加载、、、、"); }); }
往上拉就不走加载更多的数据了,
发现进入 loadmore循环了,一直加载数据,请问有解决了么,
同样,会多次触发
我是把SmartRefreshLayout-CoordinatorLayout-NestedScrollView,做了沉浸式,还是会首次调用
/** * adapter的上拉加载 */ if (homeMessageAdapter.getLoadMoreModule() != null) { homeMessageAdapter.getLoadMoreModule().setOnLoadMoreListener(() -> { //TODO:上拉加载数据 LogUtils.d("homeMessageAdapter 上拉加载、、、、"); }); }
往上拉就不走加载更多的数据了,
用SmartRefreshLayout的setOnLoadMoreListener,不要用BaseQuickAdapter的setOnLoadMoreListener
么
遇到同样问题
应该是NestedScrollView 的onMeasure方法会测量出recyclerView已有item的高度和,onBindViewHolder会从第一个item调用到最后一个item,在baseQuickAdapter 的onBindViewHolder中会判断是否要加载更多,因为最后一个item是已经被加载了,所以LoadMoreListener直接调用,然后就是循环套娃。
NestedScrollView 虽然会解决recyclerView高度显示问题 但是会导致item的复用失效。
所以无解咯 ,哈哈哈
所以无解咯 ,哈哈哈
看看根布局是否在约束布局中,如果是把他换成其他布局
同样遇到 recyclerview外面只要套一层NSV 就会不停地触发adapter的加载更多,解决方法是删了nsv
我现在也遇到了,不过没有套在nsv里,也没有约束布局,还是出现自动循环loadmore,以前用了这么多次就没遇到过,郁闷死了
和recycleview外面嵌套的布局应该没有关系。 产生的原因:首先,当使用者调用loadMoreComplete时,adapter就会自动调用onLoadMore方法,因为就是要实现自动加载功能,但是处理不当就会陷入循环中。 解决方案2种如下: 1:在onLoadMore回调中,加判断条件终止循环,例如分页逻辑; 2:在loadMoreComplete后面加调用loadMoreEnd,告诉程序加载完成,也会终止循环 希望有用!
我换了另外一种方式,如果布局有多个子view,需要整体滑动,我是通过addHeaderView(view,0);addHeaderView(view,1);用一个recylerview添加多少headview,上拉加载没有在出现自动循环的问题了,这样避免 NestedScrollView +Recylerview多层嵌套,直接Recylerview滑动
我也是一样, 我是SmartRefreshLayout+RecyclerView 就一直无限调用架子啊更多 有解决方法了@我一下
我也是一样, 我是SmartRefreshLayout+RecyclerView 就一直无限调用架子啊更多 有解决方法了@我一下
你这个应该没问题的啊 我现在就这么用的 应该是你调用的方式不对 或者布局有问题。 SRL+RV没问题的。 有问题的是NScrollView+RV
不成熟的解决办法: 我是将isAutoLoadMore = false, 通过监听NestedScroll View的滑动来实现加载更多.
和recycleview外面嵌套的布局没有关系。 测试发现 LRecyclerView.refreshComplete(pagesize) 设置必须在数据填充完mLRecyclerViewAdapter.notifyDataSetChanged()后,如果先设置refreshComplete则会无限加载
在Adapter.notifyDataSetChanged() 后调用 Adapter.loadMoreComplete(),解决连续加载问题。
这是来自QQ邮箱的假期自动回复邮件。 您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。
mViewDataBinding.outScroll.setOnScrollChangeListener(
NestedScrollView.OnScrollChangeListener { v, _, scrollDistance, _, _ ->
var canScrollDistance = v!!.getChildAt(0).measuredHeight - v.measuredHeight
if (canScrollDistance == scrollDistance) {
mViewModel?.loadMore()
}
})
在Adapter.notifyDataSetChanged() 后调用 Adapter.loadMoreComplete(),解决连续加载问题。
调用方法,还有先后顺序
这是来自QQ邮箱的假期自动回复邮件。 您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。