Baserecyclerviewadapterhelper: 一直加载更多,无限调用解决方案,仅供参考

Created on 12 May 2018  ·  9Comments  ·  Source: CymChad/BaseRecyclerViewAdapterHelper

Most helpful comment

官方给出的解释,请自行查看其它issue。

  1. 为了和项目整体保持风格一致的加载样式,保留加载更多的监听,但进行空实现
  2. 使用scrollview监听进行加载更多

关键几处代码如下:

设置统一风格的加载样式

        mLoadMoreView = new MLoadMoreView();
        mRecycleAdapter.setLoadMoreView(mLoadMoreView);

设置Adapter的加载更多为空实现,为了触发加载样式

       mRecycleAdapter.setOnLoadMoreListener(new BaseQuickAdapter.RequestLoadMoreListener() {
            @Override
            public void onLoadMoreRequested() {
                   //空实现
            }
        }, mRecyclerView);

设置scrollview的加载更多监听,滑动底部进行加载数据

      mNestedScrollview.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
            @Override
            public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {

                if (scrollY == (v.getChildAt(0).getMeasuredHeight() - v.getMeasuredHeight())) {
                    //加载更多
                    loadMoreDataFromNet(lastItem);
                }
            }
        });

加载完成之后进行样式的设置,进行中、完成、出错等等

     mRecycleAdapter.loadMoreEnd();
     mRecycleAdapter.loadMoreComplete();
    mRecycleAdapter.loadMoreFail();

All 9 comments

官方给出的解释,请自行查看其它issue。

  1. 为了和项目整体保持风格一致的加载样式,保留加载更多的监听,但进行空实现
  2. 使用scrollview监听进行加载更多

关键几处代码如下:

设置统一风格的加载样式

        mLoadMoreView = new MLoadMoreView();
        mRecycleAdapter.setLoadMoreView(mLoadMoreView);

设置Adapter的加载更多为空实现,为了触发加载样式

       mRecycleAdapter.setOnLoadMoreListener(new BaseQuickAdapter.RequestLoadMoreListener() {
            @Override
            public void onLoadMoreRequested() {
                   //空实现
            }
        }, mRecyclerView);

设置scrollview的加载更多监听,滑动底部进行加载数据

      mNestedScrollview.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
            @Override
            public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {

                if (scrollY == (v.getChildAt(0).getMeasuredHeight() - v.getMeasuredHeight())) {
                    //加载更多
                    loadMoreDataFromNet(lastItem);
                }
            }
        });

加载完成之后进行样式的设置,进行中、完成、出错等等

     mRecycleAdapter.loadMoreEnd();
     mRecycleAdapter.loadMoreComplete();
    mRecycleAdapter.loadMoreFail();

我也遇到了,你的这个方法可以解决,谢谢,希望作者可以看到,修改这个bug

每个相关issue都看了,最终用题主的方案解决了!谢谢!

用题主的方案解决了!谢谢!

看了相关的issue,最后采用题主的方案解决了!谢谢!

这样 嵌套 滑动感觉很卡 不流畅

这样 嵌套 滑动感觉很卡 不流畅

不流畅把这句加上,就行了。 mRecyclerView.setNestedScrollingEnabled(false);

终于解决了问题,谢谢 @simplehych

太好了,完美解决,非常感谢

Was this page helpful?
0 / 5 - 0 ratings