/** * Refresh complete */ public void loadMoreComplete() { if (getLoadMoreViewCount() == 0) { return; } mLoading = false; mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_DEFAULT); notifyItemChanged(getHeaderLayoutCount() + mData.size() + getFooterLayoutCount()); }
/** * Refresh failed */ public void loadMoreFail() { if (getLoadMoreViewCount() == 0) { return; } mLoading = false; mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_FAIL); notifyItemChanged(getHeaderLayoutCount() + mData.size() + getFooterLayoutCount()); }
/** * Set the enabled state of load more. * * @param enable True if load more is enabled, false otherwise. */ public void setEnableLoadMore(boolean enable) { int oldLoadMoreCount = getLoadMoreViewCount(); mLoadMoreEnable = enable; int newLoadMoreCount = getLoadMoreViewCount(); if (oldLoadMoreCount == 1) { if (newLoadMoreCount == 0) { notifyItemRemoved(getHeaderLayoutCount() + mData.size() + getFooterLayoutCount()); } } else { if (newLoadMoreCount == 1) { mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_DEFAULT); notifyItemInserted(getHeaderLayoutCount() + mData.size() + getFooterLayoutCount()); } } }
@Override public int getItemCount() { int count; if (getEmptyViewCount() == 1) { count = 1; if (mHeadAndEmptyEnable && getHeaderLayoutCount() != 0) { count++; } if (mFootAndEmptyEnable && getFooterLayoutCount() != 0) { count++; } } else { count = getHeaderLayoutCount() + mData.size() + getFooterLayoutCount() + getLoadMoreViewCount(); } return count; }
private void autoLoadMore(int position) { if (getLoadMoreViewCount() == 0) { return; } if (position < getItemCount() - mAutoLoadMoreSize) { return; } if (mLoadMoreView.getLoadMoreStatus() != LoadMoreView.STATUS_DEFAULT) { return; } mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_LOADING); if (!mLoading) { mLoading = true; mRequestLoadMoreListener.onLoadMoreRequested(); } }
/** * Refresh end, no more data * * @param gone if true gone the load more view */ public void loadMoreEnd(boolean gone) { if (getLoadMoreViewCount() == 0) { return; } mLoading = false; mNextLoadEnable = false; mLoadMoreView.setLoadMoreEndGone(gone); if (gone) { notifyItemRemoved(getHeaderLayoutCount() + mData.size() + getFooterLayoutCount()); } else { mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_END); notifyItemChanged(getHeaderLayoutCount() + mData.size() + getFooterLayoutCount()); } }