xmuSistone/PersistentRecyclerView

启用SmartRefreshLayout的LoadMore导致列表无法正常上滑

Closed this issue · 5 comments

Hi,作者你好,你实现的这个思路学习了,非常好。
在学习过程中,发现一个问题:
main_refresh_layout.setOnLoadMoreListener {
uiHandler?.sendEmptyMessageDelayed(MSG_TYPE_LOAD_MORE, 500L)
}
启用LoadMore后,整个列表在商品feeds流数据滑动到顶部后,就无法继续滑动了,因为直接出发了SmartRefreshLayout的LoadMore事件,排查下来,是由于SmartRefreshLayout的dispatchTouchEvent事件分发函数中,判定已经达到了LoadMore事件的出发条件,猜测是因为ParentRecyclerView中的onNestedPreScroll函数
if (consumeY != 0) {
consumed[1] = consumeY
this.scrollBy(0, consumeY)
}
改变mScrolly导致的,但是不知道如何下手修改,希望作者可以指点下。

1608629621475540.mp4

你是在ParentRecyclerView外层的SmartRefreshLayout启用loadMore?

对的,在你demo的代码里直接启用的

@hugoYe ParentRecyclerView启用loadMore是不合理的,因为整个ChildRecyclerView就是其中的一个item,每次ACTION_DOWN时,Parent都是触底的,处理起来较为繁琐;

建议在ChildRecyclerView外包一层带有loadMore功能的ViewGroup,这是最好的分层方案;

ok,了解了,感谢作者。
另外,建议作者可以将这个问题在你的demo中或者READMINE中做出描述,这样后续学习者就不需要在这个问题上花费时间了(因为你这套方案,ChildRecyclerView的feeds流肯定是需要做分页加载处理的)

ok,了解了,感谢作者。 另外,建议作者可以将这个问题在你的demo中或者READMINE中做出描述,这样后续学习者就不需要在这个问题上花费时间了(因为你这套方案,ChildRecyclerView的feeds流肯定是需要做分页加载处理的)

你好,我也碰见这个问题,tab吸顶后,childRecyclerview就上滑不动了,我在外层加了SmartRefreshLayout,可以上滑了,但是很卡,没有fling的效果,请问你是怎么做的分页加载处理呢