package com.dl7.recycler.adapter;
import android.content.Context;
import android.view.ViewGroup;
import com.dl7.recycler.entity.SectionEntity;
import java.util.List;
/**
* https://github.com/CymChad/BaseRecyclerViewAdapterHelper
*/
public abstract class BaseSectionQuickAdapter<T extends SectionEntity> extends BaseQuickAdapter {
protected static final int SECTION_HEADER_VIEW = 0x00000444;
public BaseSectionQuickAdapter(Context context, List<T> data) {
super(context, data);
}
public BaseSectionQuickAdapter(Context context) {
this(context, null);
}
@Override
protected int getDefItemViewType(int position) {
return ((SectionEntity) mData.get(position)).isHeader ? SECTION_HEADER_VIEW : 0;
}
@Override
protected BaseViewHolder onCreateDefViewHolder(ViewGroup parent, int viewType) {
if (viewType == SECTION_HEADER_VIEW) {
return super.createBaseViewHolder(parent, attachHeadLayoutRes());
}
return super.onCreateDefViewHolder(parent, viewType);
}
/**
* @param holder A fully initialized helper.
* @param item The item that needs to be displayed.
*/
@Override
protected void convert(BaseViewHolder holder, Object item) {
switch (holder.getItemViewType()) {
case SECTION_HEADER_VIEW:
convertHead(holder, (T) item);
break;
default:
convert(holder, (T) item);
break;
}
}
/**
* 绑定头部布局
*
* @return
*/
protected abstract int attachHeadLayoutRes();
protected abstract void convertHead(BaseViewHolder holder, T item);
protected abstract void convert(BaseViewHolder holder, T item);
}