-
public abstract class BaseQuickAdapter<T extends Object, VH extends BaseViewHolder> extends RecyclerView.Adapter<VH>
Base Class
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public classBaseQuickAdapter.Companionpublic enumBaseQuickAdapter.AnimationType内置默认动画类型
-
Field Summary
Fields Modifier and Type Field Description private List<T>dataprivate BooleanheaderWithEmptyEnableprivate BooleanfooterWithEmptyEnableprivate BooleanisUseEmptyprivate BooleanheaderViewAsFlowprivate BooleanfooterViewAsFlowprivate BooleananimationEnableprivate BooleanisAnimationFirstOnlyprivate BaseAnimationadapterAnimationprivate final BaseLoadMoreModuleloadMoreModuleprivate final BaseUpFetchModuleupFetchModuleprivate final BaseDraggableModuledraggableModuleprivate RecyclerViewrecyclerViewOrNullprivate final RecyclerViewrecyclerViewprivate final Contextcontextprivate final IntegerheaderViewPositionprivate final IntegerheaderLayoutCountprivate final LinearLayoutheaderLayoutprivate final IntegerfooterViewPositionprivate final IntegerfooterLayoutCountprivate final LinearLayoutfooterLayoutprivate final FrameLayoutemptyLayout
-
Constructor Summary
Constructors Constructor Description BaseQuickAdapter(Integer layoutResId, List<T> data)layoutId, data(Can null parameters, the default is empty data) BaseQuickAdapter(Integer layoutResId)layoutId, data(Can null parameters, the default is empty data)
-
Method Summary
Modifier and Type Method Description final List<T>getData()data, Only allowed to get. final UnitsetData(List<T> data)final BooleangetHeaderWithEmptyEnable()当显示空布局时,是否显示 Header final UnitsetHeaderWithEmptyEnable(Boolean headerWithEmptyEnable)当显示空布局时,是否显示 Header final BooleangetFooterWithEmptyEnable()当显示空布局时,是否显示 Foot final UnitsetFooterWithEmptyEnable(Boolean footerWithEmptyEnable)当显示空布局时,是否显示 Foot final BooleangetIsUseEmpty()是否使用空布局 final UnitsetIsUseEmpty(Boolean isUseEmpty)是否使用空布局 final BooleangetHeaderViewAsFlow()if asFlow is true, footer/header will arrange like normal item view. final UnitsetHeaderViewAsFlow(Boolean headerViewAsFlow)if asFlow is true, footer/header will arrange like normal item view. final BooleangetFooterViewAsFlow()final UnitsetFooterViewAsFlow(Boolean footerViewAsFlow)final BooleangetAnimationEnable()是否打开动画 final UnitsetAnimationEnable(Boolean animationEnable)是否打开动画 final BooleangetIsAnimationFirstOnly()动画是否仅第一次执行 final UnitsetIsAnimationFirstOnly(Boolean isAnimationFirstOnly)动画是否仅第一次执行 final BaseAnimationgetAdapterAnimation()设置自定义动画 final UnitsetAdapterAnimation(BaseAnimation adapterAnimation)final BaseLoadMoreModulegetLoadMoreModule()final BaseUpFetchModulegetUpFetchModule()final BaseDraggableModulegetDraggableModule()final RecyclerViewgetRecyclerViewOrNull()final UnitsetRecyclerViewOrNull(RecyclerView recyclerViewOrNull)final RecyclerViewgetRecyclerView()final ContextgetContext()final IntegergetHeaderViewPosition()final IntegergetHeaderLayoutCount()final LinearLayoutgetHeaderLayout()final IntegergetFooterViewPosition()final IntegergetFooterLayoutCount()final LinearLayoutgetFooterLayout()final FrameLayoutgetEmptyLayout()VHonCreateViewHolder(ViewGroup parent, Integer viewType)IntegergetItemCount()Don't override this method. IntegergetItemViewType(Integer position)Don't override this method. UnitonBindViewHolder(VH holder, Integer position)UnitonBindViewHolder(VH holder, Integer position, List<Object> payloads)LonggetItemId(Integer position)UnitonViewAttachedToWindow(VH holder)Called when a view created by this holder has been attached to a window. UnitonAttachedToRecyclerView(RecyclerView recyclerView)UnitonDetachedFromRecyclerView(RecyclerView recyclerView)TgetItem(@IntRange(from = 0.toLong()) Integer position)Get the data item associated with the specified position in the data set. TgetItemOrNull(@IntRange(from = 0.toLong()) Integer position)IntegergetItemPosition(T item)如果返回 -1,表示不存在 final LinkedHashSet<Integer>getChildClickViewIds()final UnitaddChildClickViewIds(@IdRes() Integer viewIds)设置需要点击事件的子view final LinkedHashSet<Integer>getChildLongClickViewIds()final UnitaddChildLongClickViewIds(@IdRes() Integer viewIds)设置需要长按点击事件的子view final ViewgetViewByPosition(Integer position, @IdRes() Integer viewId)get the specific view by position,e.g. final IntegeraddHeaderView(View view, Integer index, Integer orientation)final IntegeraddHeaderView(View view, Integer index)final IntegeraddHeaderView(View view)final IntegersetHeaderView(View view, Integer index, Integer orientation)final IntegersetHeaderView(View view, Integer index)final IntegersetHeaderView(View view)final BooleanhasHeaderLayout()是否有 HeaderLayout final UnitremoveHeaderView(View header)final UnitremoveAllHeaderView()final IntegeraddFooterView(View view, Integer index, Integer orientation)final IntegeraddFooterView(View view, Integer index)final IntegeraddFooterView(View view)final IntegersetFooterView(View view, Integer index, Integer orientation)final IntegersetFooterView(View view, Integer index)final IntegersetFooterView(View view)final UnitremoveFooterView(View footer)final UnitremoveAllFooterView()final BooleanhasFooterLayout()final UnitsetEmptyView(View emptyView)设置空布局视图,注意:data必须为空数组 final UnitsetEmptyView(Integer layoutResId)final UnitremoveEmptyView()final BooleanhasEmptyView()final UnitsetAnimationWithDefault(BaseQuickAdapter.AnimationType animationType)使用内置默认动画设置 UnitsetNewData(List<T> data)setting up a new instance to data; 设置新的数据实例 UnitsetNewInstance(List<T> list)setting up a new instance to data; 设置新的数据实例,替换原有内存引用。 通常情况下,如非必要,请使用setList修改内容 UnitreplaceData(Collection<T> newData)use data to replace all item in mData. UnitsetList(Collection<T> list)使用新的数据集合,改变原有数据集合内容。 注意:不会替换原有的内存引用,只是替换内容 UnitsetData(@IntRange(from = 0.toLong()) Integer index, T data)change data 改变某一位置数据 UnitaddData(@IntRange(from = 0.toLong()) Integer position, T data)add one new data in to certain location 在指定位置添加一条新数据 UnitaddData(@NonNull() T data)add one new data 添加一条新数据 UnitaddData(@IntRange(from = 0.toLong()) Integer position, Collection<T> newData)add new data in to certain location 在指定位置添加数据 UnitaddData(@NonNull() Collection<T> newData)Unitremove(@IntRange(from = 0.toLong()) Integer position)remove the item associated with the specified position of adapter 删除指定位置的数据 Unitremove(T data)UnitremoveAt(@IntRange(from = 0.toLong()) Integer position)remove the item associated with the specified position of adapter 删除指定位置的数据 final UnitsetDiffCallback(DiffUtil.ItemCallback<T> diffCallback)设置Diff Callback,用于快速生成 Diff Config。 final UnitsetDiffConfig(BrvahAsyncDifferConfig<T> config)设置Diff Config。如需自定义线程,请使用此方法。 在使用 setDiffNewData 前,必须设置此方法 final BrvahAsyncDiffer<T>getDiffHelper()final BrvahAsyncDiffer<T>getDiffer()UnitsetDiffNewData(List<T> list, Runnable commitCallback)使用 Diff 设置新实例. UnitsetDiffNewData(List<T> list)使用 Diff 设置新实例. UnitsetDiffNewData(@NonNull() DiffUtil.DiffResult diffResult, List<T> list)使用 DiffResult 设置新实例. final UnitsetGridSpanSizeLookup(GridSpanSizeLookup spanSizeLookup)************************************ Set Listener final UnitsetOnItemClickListener(OnItemClickListener listener)final UnitsetOnItemLongClickListener(OnItemLongClickListener listener)final UnitsetOnItemChildClickListener(OnItemChildClickListener listener)final UnitsetOnItemChildLongClickListener(OnItemChildLongClickListener listener)final OnItemClickListenergetOnItemClickListener()final OnItemLongClickListenergetOnItemLongClickListener()final OnItemChildClickListenergetOnItemChildClickListener()final OnItemChildLongClickListenergetOnItemChildLongClickListener()-
Methods inherited from class com.chad.library.adapter.base.BaseQuickAdapter
bindViewHolder, canRestoreState, createViewHolder, findRelativeAdapterPositionIn, getStateRestorationPolicy, hasObservers, hasStableIds, notifyDataSetChanged, notifyItemChanged, notifyItemChanged, notifyItemInserted, notifyItemMoved, notifyItemRangeChanged, notifyItemRangeChanged, notifyItemRangeInserted, notifyItemRangeRemoved, notifyItemRemoved, onFailedToRecycleView, onViewDetachedFromWindow, onViewRecycled, registerAdapterDataObserver, setHasStableIds, setStateRestorationPolicy, unregisterAdapterDataObserver -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
Method Detail
-
getHeaderWithEmptyEnable
final Boolean getHeaderWithEmptyEnable()
当显示空布局时,是否显示 Header
-
setHeaderWithEmptyEnable
final Unit setHeaderWithEmptyEnable(Boolean headerWithEmptyEnable)
当显示空布局时,是否显示 Header
-
getFooterWithEmptyEnable
final Boolean getFooterWithEmptyEnable()
当显示空布局时,是否显示 Foot
-
setFooterWithEmptyEnable
final Unit setFooterWithEmptyEnable(Boolean footerWithEmptyEnable)
当显示空布局时,是否显示 Foot
-
getIsUseEmpty
final Boolean getIsUseEmpty()
是否使用空布局
-
setIsUseEmpty
final Unit setIsUseEmpty(Boolean isUseEmpty)
是否使用空布局
-
getHeaderViewAsFlow
final Boolean getHeaderViewAsFlow()
if asFlow is true, footer/header will arrange like normal item view. only works when use GridLayoutManager,and it will ignore span size.
-
setHeaderViewAsFlow
final Unit setHeaderViewAsFlow(Boolean headerViewAsFlow)
if asFlow is true, footer/header will arrange like normal item view. only works when use GridLayoutManager,and it will ignore span size.
-
getFooterViewAsFlow
final Boolean getFooterViewAsFlow()
-
setFooterViewAsFlow
final Unit setFooterViewAsFlow(Boolean footerViewAsFlow)
-
getAnimationEnable
final Boolean getAnimationEnable()
是否打开动画
-
setAnimationEnable
final Unit setAnimationEnable(Boolean animationEnable)
是否打开动画
-
getIsAnimationFirstOnly
final Boolean getIsAnimationFirstOnly()
动画是否仅第一次执行
-
setIsAnimationFirstOnly
final Unit setIsAnimationFirstOnly(Boolean isAnimationFirstOnly)
动画是否仅第一次执行
-
getAdapterAnimation
final BaseAnimation getAdapterAnimation()
设置自定义动画
-
setAdapterAnimation
final Unit setAdapterAnimation(BaseAnimation adapterAnimation)
-
getLoadMoreModule
final BaseLoadMoreModule getLoadMoreModule()
-
getUpFetchModule
final BaseUpFetchModule getUpFetchModule()
-
getDraggableModule
final BaseDraggableModule getDraggableModule()
-
getRecyclerViewOrNull
final RecyclerView getRecyclerViewOrNull()
-
setRecyclerViewOrNull
final Unit setRecyclerViewOrNull(RecyclerView recyclerViewOrNull)
-
getRecyclerView
final RecyclerView getRecyclerView()
-
getContext
final Context getContext()
-
getHeaderViewPosition
final Integer getHeaderViewPosition()
-
getHeaderLayoutCount
final Integer getHeaderLayoutCount()
-
getHeaderLayout
final LinearLayout getHeaderLayout()
-
getFooterViewPosition
final Integer getFooterViewPosition()
-
getFooterLayoutCount
final Integer getFooterLayoutCount()
-
getFooterLayout
final LinearLayout getFooterLayout()
-
getEmptyLayout
final FrameLayout getEmptyLayout()
-
onCreateViewHolder
VH onCreateViewHolder(ViewGroup parent, Integer viewType)
-
getItemCount
Integer getItemCount()
Don't override this method. If need, please override getDefItemCount 不要重写此方法,如果有需要,请重写getDefItemCount
-
getItemViewType
Integer getItemViewType(Integer position)
Don't override this method. If need, please override getDefItemViewType 不要重写此方法,如果有需要,请重写getDefItemViewType
- Parameters:
position- Int
-
onBindViewHolder
Unit onBindViewHolder(VH holder, Integer position)
-
onViewAttachedToWindow
Unit onViewAttachedToWindow(VH holder)
Called when a view created by this holder has been attached to a window. simple to solve item will layout using all setFullSpan
-
onAttachedToRecyclerView
Unit onAttachedToRecyclerView(RecyclerView recyclerView)
-
onDetachedFromRecyclerView
Unit onDetachedFromRecyclerView(RecyclerView recyclerView)
-
getItem
T getItem(@IntRange(from = 0.toLong()) Integer position)
Get the data item associated with the specified position in the data set.
- Parameters:
position- Position of the item whose data we want within the adapter's data set.
-
getItemOrNull
T getItemOrNull(@IntRange(from = 0.toLong()) Integer position)
-
getItemPosition
Integer getItemPosition(T item)
如果返回 -1,表示不存在
- Parameters:
item- T?
-
getChildClickViewIds
final LinkedHashSet<Integer> getChildClickViewIds()
-
addChildClickViewIds
final Unit addChildClickViewIds(@IdRes() Integer viewIds)
设置需要点击事件的子view
- Parameters:
viewIds- IntArray
-
getChildLongClickViewIds
final LinkedHashSet<Integer> getChildLongClickViewIds()
-
addChildLongClickViewIds
final Unit addChildLongClickViewIds(@IdRes() Integer viewIds)
设置需要长按点击事件的子view
- Parameters:
viewIds- IntArray
-
getViewByPosition
final View getViewByPosition(Integer position, @IdRes() Integer viewId)
get the specific view by position,e.g. getViewByPosition(2, R.id.textView)
bind RecyclerView.setAdapter before use!
-
addHeaderView
@JvmOverloads() final Integer addHeaderView(View view, Integer index, Integer orientation)
-
addHeaderView
@JvmOverloads() final Integer addHeaderView(View view, Integer index)
-
addHeaderView
@JvmOverloads() final Integer addHeaderView(View view)
-
setHeaderView
@JvmOverloads() final Integer setHeaderView(View view, Integer index, Integer orientation)
-
setHeaderView
@JvmOverloads() final Integer setHeaderView(View view, Integer index)
-
setHeaderView
@JvmOverloads() final Integer setHeaderView(View view)
-
hasHeaderLayout
final Boolean hasHeaderLayout()
是否有 HeaderLayout
-
removeHeaderView
final Unit removeHeaderView(View header)
-
removeAllHeaderView
final Unit removeAllHeaderView()
-
addFooterView
@JvmOverloads() final Integer addFooterView(View view, Integer index, Integer orientation)
-
addFooterView
@JvmOverloads() final Integer addFooterView(View view, Integer index)
-
addFooterView
@JvmOverloads() final Integer addFooterView(View view)
-
setFooterView
@JvmOverloads() final Integer setFooterView(View view, Integer index, Integer orientation)
-
setFooterView
@JvmOverloads() final Integer setFooterView(View view, Integer index)
-
setFooterView
@JvmOverloads() final Integer setFooterView(View view)
-
removeFooterView
final Unit removeFooterView(View footer)
-
removeAllFooterView
final Unit removeAllFooterView()
-
hasFooterLayout
final Boolean hasFooterLayout()
-
setEmptyView
final Unit setEmptyView(View emptyView)
设置空布局视图,注意:data必须为空数组
- Parameters:
emptyView- View
-
setEmptyView
final Unit setEmptyView(Integer layoutResId)
-
removeEmptyView
final Unit removeEmptyView()
-
hasEmptyView
final Boolean hasEmptyView()
-
setAnimationWithDefault
final Unit setAnimationWithDefault(BaseQuickAdapter.AnimationType animationType)
使用内置默认动画设置
- Parameters:
animationType- AnimationType
-
setNewData
@Deprecated(message = Please use setNewInstance(), This method will be removed in the next version, replaceWith = @ReplaceWith(imports = {}, expression = setNewInstance(data))) Unit setNewData(List<T> data)
setting up a new instance to data; 设置新的数据实例
-
setNewInstance
Unit setNewInstance(List<T> list)
setting up a new instance to data; 设置新的数据实例,替换原有内存引用。 通常情况下,如非必要,请使用setList修改内容
-
replaceData
@Deprecated(message = Please use setData(), replaceWith = @ReplaceWith(imports = {}, expression = setList(newData))) Unit replaceData(Collection<T> newData)
use data to replace all item in mData. this method is different setList, it doesn't change the BaseQuickAdapter.data reference Deprecated, Please use setList
- Parameters:
newData- data collection
-
setList
Unit setList(Collection<T> list)
使用新的数据集合,改变原有数据集合内容。 注意:不会替换原有的内存引用,只是替换内容
- Parameters:
list- Collection<T>?
-
addData
Unit addData(@IntRange(from = 0.toLong()) Integer position, T data)
add one new data in to certain location 在指定位置添加一条新数据
-
addData
Unit addData(@IntRange(from = 0.toLong()) Integer position, Collection<T> newData)
add new data in to certain location 在指定位置添加数据
- Parameters:
position- the insert positionnewData- the new data collection
-
addData
Unit addData(@NonNull() Collection<T> newData)
-
remove
@Deprecated(message = Please use removeAt(), replaceWith = @ReplaceWith(imports = {}, expression = removeAt(position))) Unit remove(@IntRange(from = 0.toLong()) Integer position)
remove the item associated with the specified position of adapter 删除指定位置的数据
-
removeAt
Unit removeAt(@IntRange(from = 0.toLong()) Integer position)
remove the item associated with the specified position of adapter 删除指定位置的数据
-
setDiffCallback
final Unit setDiffCallback(DiffUtil.ItemCallback<T> diffCallback)
设置Diff Callback,用于快速生成 Diff Config。
- Parameters:
diffCallback- ItemCallback<T>
-
setDiffConfig
final Unit setDiffConfig(BrvahAsyncDifferConfig<T> config)
设置Diff Config。如需自定义线程,请使用此方法。 在使用 setDiffNewData 前,必须设置此方法
- Parameters:
config- BrvahAsyncDifferConfig<T>
-
getDiffHelper
@Deprecated(message = User getDiffer(), replaceWith = @ReplaceWith(imports = {}, expression = getDiffer())) final BrvahAsyncDiffer<T> getDiffHelper()
-
getDiffer
final BrvahAsyncDiffer<T> getDiffer()
-
setDiffNewData
@JvmOverloads() Unit setDiffNewData(List<T> list, Runnable commitCallback)
使用 Diff 设置新实例. 此方法为异步Diff,无需考虑性能问题. 使用之前请先设置 setDiffCallback 或者 setDiffConfig.
Use Diff setting up a new instance to data. This method is asynchronous.
- Parameters:
list- MutableList<T>?
-
setDiffNewData
@JvmOverloads() Unit setDiffNewData(List<T> list)
使用 Diff 设置新实例. 此方法为异步Diff,无需考虑性能问题. 使用之前请先设置 setDiffCallback 或者 setDiffConfig.
Use Diff setting up a new instance to data. This method is asynchronous.
- Parameters:
list- MutableList<T>?
-
setDiffNewData
Unit setDiffNewData(@NonNull() DiffUtil.DiffResult diffResult, List<T> list)
使用 DiffResult 设置新实例. Use DiffResult setting up a new instance to data.
- Parameters:
diffResult- DiffResultlist- New Data
-
setGridSpanSizeLookup
final Unit setGridSpanSizeLookup(GridSpanSizeLookup spanSizeLookup)
************************************ Set Listener
-
setOnItemClickListener
final Unit setOnItemClickListener(OnItemClickListener listener)
-
setOnItemLongClickListener
final Unit setOnItemLongClickListener(OnItemLongClickListener listener)
-
setOnItemChildClickListener
final Unit setOnItemChildClickListener(OnItemChildClickListener listener)
-
setOnItemChildLongClickListener
final Unit setOnItemChildLongClickListener(OnItemChildLongClickListener listener)
-
getOnItemClickListener
final OnItemClickListener getOnItemClickListener()
-
getOnItemLongClickListener
final OnItemLongClickListener getOnItemLongClickListener()
-
getOnItemChildClickListener
final OnItemChildClickListener getOnItemChildClickListener()
-
getOnItemChildLongClickListener
final OnItemChildLongClickListener getOnItemChildLongClickListener()
-
-
-
-