/** * if mFooterLayout will be return 1 or not will be return 0. * notice: Deprecated! Use {@link ViewGroup#getChildCount()} of {@link #getFooterLayout()} to replace. * * @return */ @Deprecated public int getFooterViewsCount() { return getFooterLayoutCount(); }
/** * remove all footer view from mFooterLayout and set null to mFooterLayout */ public void removeAllFooterView() { if (getFooterLayoutCount() == 0) return; mFooterLayout.removeAllViews(); int position = getFooterViewPosition(); if (position != -1) { notifyItemRemoved(position); } }
@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; }
/** * remove footer view from mFooterLayout, * When the child count of mFooterLayout is 0, mFooterLayout will be set to null. * * @param footer */ public void removeFooterView(View footer) { if (getFooterLayoutCount() == 0) return; mFooterLayout.removeView(footer); if (mFooterLayout.getChildCount() == 0) { int position = getFooterViewPosition(); if (position != -1) { notifyItemRemoved(position); } } }
/** * 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()); }
@Override public void onClick(View v) { if (mLoadMoreView.getLoadMoreStatus() == LoadMoreView.STATUS_FAIL) { mLoadMoreView.setLoadMoreStatus(LoadMoreView.STATUS_DEFAULT); notifyItemChanged(getHeaderLayoutCount() + mData.size() + getFooterLayoutCount()); } } });
/** * 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()); } }
/** * 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()); } } }
} else { adjPosition = adjPosition - adapterCount; int numFooters = getFooterLayoutCount(); if (adjPosition < numFooters) { return FOOTER_VIEW;