LoadingViewFinal
LoadingViewFinal copied to clipboard
setHasLoadMore()的逻辑有问题
public void setHasLoadMore(boolean hasLoadMore) {
mHasLoadMore = hasLoadMore;
if (!mHasLoadMore) {
showNoMoreUI();
if(mNoLoadMoreHideView) {
removeFooterView(mLoadMoreView.getFooterView());
mAddLoadMoreFooterFlag = false;
}
} else {
if(!mAddLoadMoreFooterFlag) {
mAddLoadMoreFooterFlag = true;
addFooterView(mLoadMoreView.getFooterView());
}
showNormalUI();
}
}
如果加载完第一页之后就没有更多数据了,然后调用一次setHasLoadMore(false),此时的预期应该是底部显示『没有更多了』,但是按照上面的逻辑会无法显示底部。
public void setHasLoadMore(boolean hasLoadMore) { mHasLoadMore = hasLoadMore; if (!mHasLoadMore) { // 没有更多 if(mNoLoadMoreHideView){ // showNoMoreUI(); removeFooterView(mLoadMoreView.getFooterView()); mAddLoadMoreFooterFlag = false; }else { if(!mAddLoadMoreFooterFlag) { mAddLoadMoreFooterFlag = true; addFooterView(mLoadMoreView.getFooterView()); } showNoMoreUI(); } } else { if(!mAddLoadMoreFooterFlag) { mAddLoadMoreFooterFlag = true; addFooterView(mLoadMoreView.getFooterView()); } showNormalUI(); } }
这样改 就可以了