public abstract class BaseAdapter<T> extends android.support.v7.widget.RecyclerView.Adapter<BaseViewHolder> implements LoadMore
LoadMore.LoadState| 限定符和类型 | 字段和说明 |
|---|---|
protected java.util.List<T> |
mData |
protected static DefaultViewCreator |
sDefaultViewCreator |
LOAD_COMPLETED, LOAD_FAILED, LOADING| 构造器和说明 |
|---|
BaseAdapter() |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
addData(java.util.List<? extends T> data)
添加新数据,并有可能重置加载更多状态
|
void |
addData(T 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 |
bindData(BaseViewHolder baseViewHolder,
int layoutRes) |
protected void |
bindEmpty(BaseViewHolder holder)
默认空布局的点击事件实现
|
protected void |
bindError(BaseViewHolder holder)
默认异常布局的点击事件实现
|
boolean |
canAutoLoadMore() |
abstract void |
convert(BaseViewHolder holder,
T data,
int index)
在这里设置显示
|
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 |
convertLoadCompleted(BaseViewHolder holder) |
void |
convertLoadFailed(BaseViewHolder holder) |
void |
convertLoading(BaseViewHolder holder) |
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) |
DiffUtilCallback<T> |
getCallback() |
java.util.List<T> |
getData() |
T |
getData(int adapterPosition)
此position是AdapterPosition
|
int |
getFootSize() |
int |
getHeadSize() |
int |
getItemCount() |
int |
getItemViewType(int position) |
abstract int |
getLayoutRes(int index)
返回布局layout
|
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(int adapterPosition) |
void |
removeData(T data) |
void |
removeFoot(int adapterPosition) |
void |
removeHead(int adapterPosition) |
void |
setAlwaysShowFoot(boolean alwaysShowFoot)
设置当显示Empty布局或者Error布局时是否也显示尾部布局
|
void |
setAlwaysShowHead(boolean alwaysShowHead)
设置当显示Empty布局或者Error布局时是否也显示头部布局
|
void |
setCallback(DiffUtilCallback<T> callback) |
void |
setCallback(DiffUtilCallback<T> callback,
boolean detectMoves) |
void |
setData(java.util.List<? extends T> data)
设置新数据,会清除掉原有数据,并有可能重置加载更多状态
|
static void |
setDefaultViewCreator(DefaultViewCreator defaultViewCreator)
全局设置设置默认的布局
|
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<T> mData
@NonNull protected static DefaultViewCreator sDefaultViewCreator
public static void setDefaultViewCreator(@NonNull
DefaultViewCreator defaultViewCreator)
public void setData(@Nullable
java.util.List<? extends T> data)
data - 数据集合public void addData(T data)
data - 数据集合public void addData(java.util.List<? extends T> data)
data - 数据集合public void removeData(T 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 T getData(int adapterPosition)
adapterPosition - 当前项的AdapterPositionpublic java.util.List<T> 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<T> callback)
public void setCallback(DiffUtilCallback<T> callback, boolean detectMoves)
public DiffUtilCallback<T> 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 convertLoading(BaseViewHolder holder)
public void convertLoadFailed(BaseViewHolder holder)
public void convertLoadCompleted(BaseViewHolder holder)
public void convertEmpty(BaseViewHolder holder)
holder - 默认的ViewHolderpublic void convertError(BaseViewHolder holder)
holder - 默认的ViewHolderprotected void bindEmpty(BaseViewHolder holder)
holder - 默认的ViewHolderprotected void bindError(BaseViewHolder holder)
holder - 默认的ViewHolderprotected void bindData(BaseViewHolder baseViewHolder, int layoutRes)
public 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 在接口中 LoadMore@LayoutRes public abstract int getLayoutRes(int index)
index - 列表位置public abstract void convert(BaseViewHolder holder, T data, int index)
holder - 默认的ViewHolderdata - 对应的数据index - 对应的列表位置(不一定是数据在数据集合List中的位置)public abstract void bind(BaseViewHolder holder, int layoutRes)
holder - 默认的ViewHolderlayoutRes - 对应的布局Layout ID,也代表为ViewType