setEnableLoadMore(false)不起作用

在用BaseQuickAdapter做分页的时候,设置了setEnableLoadMore(false),上拉的时候setOnLoadMoreListener里面还是执行了。

//检测有没有下一页
private void checkNoMoreData(int total) {
        couponsItemAdapter.loadMoreComplete();
        if (mCurPageNum * pageSize >= total) {
            couponsItemAdapter.setEnableLoadMore(false);
        } else {
            couponsItemAdapter.setEnableLoadMore(true);
        }
    }

在setOnLoadMoreListener里面打印了一下adapter.isLoadMoreEnable(),发现这个值是true。
也就是说,在setEnableLoadMore(false)完后,还有地方把这个值又设置成true了。
代码里没有找到这个地方,只能去BaseQuickAdapter.java源码里找了

public boolean isLoadMoreEnable() {
        return this.mLoadMoreEnable;
 }

这个值是mLoadMoreEnable,查找一下这个值在什么情况下会被设置成true。
有两个地方:

public void setNewData(@Nullable List<T> data) {
       、、、、
            this.mLoadMoreEnable = true;
       、、、
}
private void openLoadMore(BaseQuickAdapter.RequestLoadMoreListener requestLoadMoreListener) {
        、、、
        this.mLoadMoreEnable = true;
        、、、
}

第一个地方,是在adapter赋值的时候,adapter.setNewData(list)
第二个地方,是在

public void setOnLoadMoreListener(BaseQuickAdapter.RequestLoadMoreListener requestLoadMoreListener) {
        this.openLoadMore(requestLoadMoreListener);
}

也就是设置上拉监听的时候,会把这个值改为true。

看来一下自己的代码,果然在执行checkNoMoreData()检测有没有下一页的后面,还执行了setOnLoadMoreListener和setNewData。
把checkNoMoreData代码移到这两个后面去执行,就OK了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 9,096评论 0 4
  • 公元:2019年11月28日19时42分农历:二零一九年 十一月 初三日 戌时干支:己亥乙亥己巳甲戌当月节气:立冬...
    石放阅读 7,721评论 0 2
  • 今天上午陪老妈看病,下午健身房跑步,晚上想想今天还没有断舍离,马上做,衣架和旁边的的布衣架,一看乱乱,又想想自己是...
    影子3623253阅读 3,095评论 3 8

友情链接更多精彩内容