pengjianbo / LoadingViewFinal

android下拉刷新/加载更多组件库
286 stars 80 forks source link

executeLoadMore()逻辑问题,会造成lcok始终为true,不能加载,一直显示加载动画。 #20

Open L444m opened 6 years ago

L444m commented 6 years ago

RecyclerViewFinal中executeLoadMore():

void executeLoadMore() {
    if(!mLoadMoreLock && mHasLoadMore) {
        if (mOnLoadMoreListener != null) {
            mOnLoadMoreListener.loadMore();
        }
        mLoadMoreLock = true;//上锁
        showLoadingUI();
    }
}

loadMore()是数据加载业务,在完成数据加载后,一般会调用RecyclerViewFinal.setHasLoadMore(true)去释放锁。但是如果 loadMore() 很快就结束,那么 mLoadMoreLock 就始终为 true. 下次再 load more 的时候,就会只显示加载动画,不会执行。

建议更改:

mLoadMoreLock = true;//上锁
if (mOnLoadMoreListener != null) {
    mOnLoadMoreListener.loadMore();
}
showLoadingUI();