-
public class BaseBinderAdapter extends BaseQuickAdapter<Any, BaseViewHolder>
使用 Binder 来实现adapter,既可以实现单布局,也能实现多布局 数据实体类也不存继承问题
当有多种条目的时候,避免在convert()中做太多的业务逻辑,把逻辑放在对应的 BaseItemBinder 中。 适用于以下情况: 1、实体类不方便扩展,此Adapter的数据类型可以是任意类型,默认情况下不需要实现 getItemType 2、item 类型较多,在convert()中管理起来复杂
ViewHolder 由 BaseItemBinder 实现,并且每个BaseItemBinder可以拥有自己类型的ViewHolder类型。
数据类型为Any
-
-
Field Summary
Fields Modifier and Type Field Description private List<Object>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 BaseBinderAdapter(List<Object> list)
-
Method Summary
-
Methods inherited from class com.chad.library.adapter.base.BaseBinderAdapter
addChildClickViewIds, addChildLongClickViewIds, addData, addData, addData, addData, addFooterView, addFooterView, addFooterView, addHeaderView, addHeaderView, addHeaderView, getChildClickViewIds, getChildLongClickViewIds, getDiffHelper, getDiffer, getItem, getItemCount, getItemId, getItemOrNull, getItemPosition, getItemViewType, getOnItemChildClickListener, getOnItemChildLongClickListener, getOnItemClickListener, getOnItemLongClickListener, getViewByPosition, hasEmptyView, hasFooterLayout, hasHeaderLayout, onAttachedToRecyclerView, onBindViewHolder, onBindViewHolder, onCreateViewHolder, onDetachedFromRecyclerView, remove, remove, removeAllFooterView, removeAllHeaderView, removeAt, removeEmptyView, removeFooterView, removeHeaderView, replaceData, setAnimationWithDefault, setData, setDiffCallback, setDiffConfig, setDiffNewData, setDiffNewData, setDiffNewData, setEmptyView, setEmptyView, setFooterView, setFooterView, setFooterView, setGridSpanSizeLookup, setHeaderView, setHeaderView, setHeaderView, setList, setNewData, setNewInstance, setOnItemChildClickListener, setOnItemChildLongClickListener, setOnItemClickListener, setOnItemLongClickListener -
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, 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()
-
addItemBinder
@JvmOverloads() final <T extends Any> BaseBinderAdapter addItemBinder(Class<out T> clazz, BaseItemBinder<T, ?> baseItemBinder, DiffUtil.ItemCallback<T> callback)
添加 ItemBinder
-
addItemBinder
@JvmOverloads() final <T extends Any> BaseBinderAdapter addItemBinder(Class<out T> clazz, BaseItemBinder<T, ?> baseItemBinder)
添加 ItemBinder
-
addItemBinder
final <T extends Any> BaseBinderAdapter addItemBinder(BaseItemBinder<T, ?> baseItemBinder, DiffUtil.ItemCallback<T> callback)
kotlin 可以使用如下方法添加 ItemBinder,更加简单
-
getItemBinder
BaseItemBinder<Object, BaseViewHolder> getItemBinder(Integer viewType)
-
getItemBinderOrNull
BaseItemBinder<Object, BaseViewHolder> getItemBinderOrNull(Integer viewType)
-
onViewAttachedToWindow
Unit onViewAttachedToWindow(BaseViewHolder holder)
Called when a view created by this holder has been attached to a window. simple to solve item will layout using all setFullSpan
-
onViewDetachedFromWindow
Unit onViewDetachedFromWindow(BaseViewHolder holder)
-
onFailedToRecycleView
Boolean onFailedToRecycleView(BaseViewHolder holder)
-
-
-
-