public abstract class ExpandableAdapter extends android.support.v7.widget.RecyclerView.Adapter<BaseViewHolder> implements LoadMore
LoadMore.LoadState| 限定符和类型 | 字段和说明 |
|---|---|
protected java.util.List<IMultiItem> |
mData |
LOAD_COMPLETED, LOAD_FAILED, LOADING| 构造器和说明 |
|---|
ExpandableAdapter() |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
addData(IMultiItem data)
添加新数据,并有可能重置加载更多状态
|
void |
addData(java.util.List<? extends IMultiItem> data)
添加新数据,并有可能重置加载更多状态
|
void |
addFootLayout(int footLayout)
按调用顺序添加尾部布局
|
void |
addHeadLayout(int headLayout)
按调用顺序添加头部布局
|
abstract void |
bind(BaseViewHolder holder,
int layoutRes)
开启子view的点击事件,或者其他监听
|
protected void |
bindEmpty(BaseViewHolder holder)
默认空布局的点击事件实现
|
protected void |
bindError(BaseViewHolder holder)
默认异常布局的点击事件实现
|
boolean |
canAutoLoadMore() |
void |
collapse(int adapterPosition)
关闭下级菜单
|
void |
collapseAll(int adapterPosition)
关闭下级菜单树下的所有菜单
|
void |
convertEmpty(BaseViewHolder holder)
如果设置了自定义Empty布局,且想对其设置一些数据显示处理,可以重写此方法
|
void |
convertError(BaseViewHolder holder)
如果设置了自定义Error布局,且想对其设置一些数据显示处理,可以重写此方法
|
void |
convertFoot(BaseViewHolder holder,
int footLayout,
int index)
如果要对尾布局进行处理可重写此方法
|
void |
convertHead(BaseViewHolder holder,
int headLayout,
int index)
如果要对头布局进行处理可重写此方法
|
void |
convertLoadMore(BaseViewHolder holder,
int loadState)
如果设置了自定义加载更多布局,则需要重写此方法,然后根据 loadState 的值来控制显示
、隐藏布局。
|
void |
expand(int adapterPosition)
展开下级菜单
|
void |
expandAll(int adapterPosition)
展开全部下级菜单
|
DiffUtilCallback<? extends IMultiItem> |
getCallback() |
java.util.List<IMultiItem> |
getData() |
IMultiItem |
getData(int adapterPosition)
此position是AdapterPosition
|
int |
getFootSize() |
int |
getHeadSize() |
int |
getItemCount() |
int |
getItemViewType(int position) |
boolean |
hasFoot() |
boolean |
hasHead() |
void |
loadCompleted()
加载完成
|
void |
loadFailed()
加载失败
|
void |
onAttachedToRecyclerView(android.support.v7.widget.RecyclerView recyclerView) |
void |
onBindViewHolder(BaseViewHolder holder,
int position) |
BaseViewHolder |
onCreateViewHolder(android.view.ViewGroup parent,
int layoutRes) |
void |
onViewAttachedToWindow(BaseViewHolder holder) |
void |
openAutoLoadMore(boolean open)
设置自动加载更多开关
|
void |
removeAllFoot() |
void |
removeAllHead() |
void |
removeData(IMultiItem data) |
void |
removeData(int adapterPosition) |
void |
removeFoot(int adapterPosition) |
void |
removeHead(int adapterPosition) |
void |
setCallback(DiffUtilCallback<IMultiItem> callback) |
void |
setCallback(DiffUtilCallback<IMultiItem> callback,
boolean detectMoves) |
void |
setData(java.util.List<? extends IMultiItem> data)
设置新数据,会清除掉原有数据,并有可能重置加载更多状态
|
void |
setEmptyLayout(int emptyLayout) |
void |
setErrorLayout(int errorLayout) |
void |
setLoadMoreLayout(int moreLayout)
设置加载界面
|
void |
setOnItemClickListener(OnItemClickListener onItemClickListener) |
void |
setOnItemLongClickListener(OnItemLongClickListener onItemLongClickListener) |
void |
setOnLoadMoreListener(OnLoadMoreListener onLoadMoreListener)
设置加载更多监听事件
|
void |
showErrorView() |
bindViewHolder, createViewHolder, getItemId, hasObservers, hasStableIds, notifyDataSetChanged, notifyItemChanged, notifyItemChanged, notifyItemInserted, notifyItemMoved, notifyItemRangeChanged, notifyItemRangeChanged, notifyItemRangeInserted, notifyItemRangeRemoved, notifyItemRemoved, onBindViewHolder, onDetachedFromRecyclerView, onFailedToRecycleView, onViewDetachedFromWindow, onViewRecycled, registerAdapterDataObserver, setHasStableIds, unregisterAdapterDataObserverprotected final java.util.List<IMultiItem> mData
public void setData(@Nullable
java.util.List<? extends IMultiItem> data)
data - 数据集合public void addData(IMultiItem data)
data - 数据集合public void addData(java.util.List<? extends IMultiItem> data)
data - 数据集合public void removeData(IMultiItem data)
public void removeData(int adapterPosition)
public void removeHead(int adapterPosition)
public void removeFoot(int adapterPosition)
public void removeAllHead()
public void removeAllFoot()
@CheckResult @Nullable public IMultiItem getData(int adapterPosition)
adapterPosition - 当前项的AdapterPositionpublic java.util.List<IMultiItem> getData()
public void setOnItemClickListener(@Nullable
OnItemClickListener onItemClickListener)
public void setOnItemLongClickListener(@Nullable
OnItemLongClickListener onItemLongClickListener)
public void addHeadLayout(@LayoutRes
int headLayout)
headLayout - 布局idpublic boolean hasHead()
public int getHeadSize()
public void addFootLayout(@LayoutRes
int footLayout)
footLayout - 布局idpublic boolean hasFoot()
public int getFootSize()
public void setCallback(DiffUtilCallback<IMultiItem> callback)
public void setCallback(DiffUtilCallback<IMultiItem> callback, boolean detectMoves)
public DiffUtilCallback<? extends IMultiItem> getCallback()
public BaseViewHolder onCreateViewHolder(android.view.ViewGroup parent, int layoutRes)
onCreateViewHolder 在类中 android.support.v7.widget.RecyclerView.Adapter<BaseViewHolder>public final void onBindViewHolder(BaseViewHolder holder, int position)
onBindViewHolder 在类中 android.support.v7.widget.RecyclerView.Adapter<BaseViewHolder>public final int getItemCount()
getItemCount 在类中 android.support.v7.widget.RecyclerView.Adapter<BaseViewHolder>public int getItemViewType(int position)
getItemViewType 在类中 android.support.v7.widget.RecyclerView.Adapter<BaseViewHolder>public void onViewAttachedToWindow(BaseViewHolder holder)
onViewAttachedToWindow 在类中 android.support.v7.widget.RecyclerView.Adapter<BaseViewHolder>public void onAttachedToRecyclerView(android.support.v7.widget.RecyclerView recyclerView)
onAttachedToRecyclerView 在类中 android.support.v7.widget.RecyclerView.Adapter<BaseViewHolder>public void convertHead(BaseViewHolder holder, @LayoutRes int headLayout, int index)
holder - 布局holderheadLayout - 布局id,跟index可以确定布局是第几个布局index - 添加时的顺序public void convertFoot(BaseViewHolder holder, @LayoutRes int footLayout, int index)
holder - 布局holderfootLayout - 布局id,跟index可以确定布局是第几个布局index - 添加时的顺序public void convertLoadMore(BaseViewHolder holder, int loadState)
holder - 布局holderloadState - 是 LoadMore.LOADING、LoadMore.LOAD_COMPLETED
或者LoadMore.LOAD_FAILED 之一,分别对应加载中,完成加载,
还有加载失败三种情况public void convertEmpty(BaseViewHolder holder)
holder - 默认的ViewHolderpublic void convertError(BaseViewHolder holder)
holder - 默认的ViewHolderprotected void bindEmpty(BaseViewHolder holder)
holder - 默认的ViewHolderprotected void bindError(BaseViewHolder holder)
holder - 默认的ViewHolderpublic void setEmptyLayout(@LayoutRes
int emptyLayout)
public void setErrorLayout(@LayoutRes
int errorLayout)
public void showErrorView()
public void openAutoLoadMore(boolean open)
LoadMoreopenAutoLoadMore 在接口中 LoadMoreopen - true打开加载更多,false关闭public void loadCompleted()
LoadMoreloadCompleted 在接口中 LoadMorepublic void loadFailed()
LoadMoreloadFailed 在接口中 LoadMorepublic void setOnLoadMoreListener(@Nullable
OnLoadMoreListener onLoadMoreListener)
LoadMoresetOnLoadMoreListener 在接口中 LoadMoreonLoadMoreListener - 当为null时不会开启自动加载public void setLoadMoreLayout(@LayoutRes
int moreLayout)
LoadMoresetLoadMoreLayout 在接口中 LoadMoremoreLayout - LoadMore布局public boolean canAutoLoadMore()
canAutoLoadMore 在接口中 LoadMorepublic abstract void bind(BaseViewHolder holder, int layoutRes)
holder - 默认的ViewHolderlayoutRes - 对应的布局Layout ID,也代表为ViewTypepublic void expand(int adapterPosition)
adapterPosition - 想展开下级菜单的父菜单位置public void expandAll(int adapterPosition)
adapterPosition - 想展开下级菜单的父菜单位置public void collapse(int adapterPosition)
adapterPosition - 想关闭下级菜单的父菜单位置public void collapseAll(int adapterPosition)
adapterPosition - 想关闭下级菜单的父菜单位置