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 |
addFootLayout(int footLayout,
boolean fullSpan)
按调用顺序添加尾部布局
|
void |
addFootLayout(int footLayout,
boolean fullSpan,
int spanSize)
按调用顺序添加尾部布局
|
void |
addHeadLayout(int headLayout)
按调用顺序添加头部布局
|
void |
addHeadLayout(int headLayout,
boolean fullSpan)
按调用顺序添加头部布局
|
void |
addHeadLayout(int headLayout,
boolean fullSpan,
int spanSize)
按调用顺序添加头部布局
|
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 |
doNotifyDataSetChanged() |
void |
doNotifyItemChanged(int position) |
void |
doNotifyItemChanged(int position,
java.lang.Object payload) |
void |
doNotifyItemInserted(int position) |
void |
doNotifyItemMoved(int fromPosition,
int toPosition) |
void |
doNotifyItemRangeChanged(int positionStart,
int itemCount) |
void |
doNotifyItemRangeChanged(int positionStart,
int itemCount,
java.lang.Object payload) |
void |
doNotifyItemRangeInserted(int positionStart,
int itemCount) |
void |
doNotifyItemRangeRemoved(int positionStart,
int itemCount) |
void |
doNotifyItemRemoved(int position) |
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() |
boolean |
isAlwaysShowFoot()
是否总是显示尾部
|
boolean |
isAlwaysShowHead()
是否总是显示头部
|
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 |
onDetachedFromRecyclerView(android.support.v7.widget.RecyclerView recyclerView) |
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 |
setAlwaysShowFoot(boolean alwaysShowFoot)
设置当显示Empty布局或者Error布局时是否也显示尾部布局
|
void |
setAlwaysShowHead(boolean alwaysShowHead)
设置当显示Empty布局或者Error布局时是否也显示头部布局
|
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, 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 setAlwaysShowHead(boolean alwaysShowHead)
alwaysShowHead - true 显示头部布局
false 不显示头部布局public boolean isAlwaysShowHead()
public void setAlwaysShowFoot(boolean alwaysShowFoot)
alwaysShowFoot - true 显示尾部布局
false 不显示尾部布局public boolean isAlwaysShowFoot()
public void addHeadLayout(@LayoutRes
int headLayout)
headLayout - 布局idpublic void addHeadLayout(@LayoutRes
int headLayout,
boolean fullSpan)
headLayout - 布局idfullSpan - 是否横跨布局,在GridLayoutManager布局的时候只有
Layout的spanSize 小于或等于 0的时候生效
true 为横跨布局,false为1public void addHeadLayout(@LayoutRes
int headLayout,
boolean fullSpan,
int spanSize)
headLayout - 布局idfullSpan - 是否横跨布局,在GridLayoutManager布局的时候只有
Layout的spanSize 小于或等于 0的时候生效
true 为横跨布局,false为1spanSize - 在GridLayoutManager布局的时候生效,如果小于或等于0,则根据fullSpan的值设置
spanSize的大小.
true 为横跨布局,false为1public boolean hasHead()
public int getHeadSize()
public void addFootLayout(@LayoutRes
int footLayout)
footLayout - 布局idpublic void addFootLayout(@LayoutRes
int footLayout,
boolean fullSpan)
footLayout - 布局idfullSpan - 是否横跨布局,在GridLayoutManager布局的时候只有
Layout的spanSize 小于或等于 0的时候生效
true 为横跨布局,false为1public void addFootLayout(@LayoutRes
int footLayout,
boolean fullSpan,
int spanSize)
footLayout - 布局idfullSpan - 是否横跨布局,在GridLayoutManager布局的时候只有
Layout的spanSize 小于或等于 0的时候生效
true 为横跨布局,false为1spanSize - 在GridLayoutManager布局的时候生效,如果小于或等于0,则根据fullSpan的值设置
spanSize的大小.
true 为横跨布局,false为1public 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 onDetachedFromRecyclerView(android.support.v7.widget.RecyclerView recyclerView)
onDetachedFromRecyclerView 在类中 android.support.v7.widget.RecyclerView.Adapter<BaseViewHolder>public void doNotifyDataSetChanged()
public void doNotifyItemChanged(int position)
public void doNotifyItemChanged(int position,
java.lang.Object payload)
public void doNotifyItemRangeChanged(int positionStart,
int itemCount)
public void doNotifyItemRangeChanged(int positionStart,
int itemCount,
java.lang.Object payload)
public void doNotifyItemInserted(int position)
public void doNotifyItemMoved(int fromPosition,
int toPosition)
public void doNotifyItemRangeInserted(int positionStart,
int itemCount)
public void doNotifyItemRemoved(int position)
public void doNotifyItemRangeRemoved(int positionStart,
int itemCount)
public void convertHead(BaseViewHolder holder, int headLayout, int index)
holder - 布局holderheadLayout - 布局id,跟index可以确定布局是第几个布局index - 添加时的顺序public void convertFoot(BaseViewHolder holder, 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 - 想关闭下级菜单的父菜单位置