实体类
创建一个多布局基类BaseMultiItemEntity
public class BaseMultiItemEntity {
private int itemType;
public BaseMultiItemEntity(@LayoutRes int itemType) {
this.itemType = itemType;
}
public int getItemType() {
return itemType;
}
public void setItemType(@LayoutRes int itemType) {
this.itemType = itemType;
}
}
多布局实体类必须继承BaseMultiItemEntity
public class MultiItemEntity extends BaseMultiItemEntity {
private String name;
private String pass;
public MultiItemEntity(int itemType, String name, String pass) {
super(itemType);
this.name = name;
this.pass = pass;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
}
多布局适配器
public abstract class BaseMultiItemAdapter <T extends BaseMultiItemEntity, K extends BaseViewHolder> extends BaseRecyclerViewAdapter<T,K>{
public BaseMultiItemAdapter(@Nullable List<T> data) {
super(data);
}
@Override
public int getItemViewType(int position) {
return data.get(position).getItemType();
}
}
在BaseRecyclerViewAdapter添加以下代码
//是否是多布局
private boolean isMultiItem = false;
/**
* 单布局构造函数
* @param resource 布局文件
* @param data item数据
*/
public BaseRecyclerViewAdapter(@LayoutRes int resource, @Nullable List<T> data){
this.data = data == null ? new ArrayList<T>() : data;
if (resource != 0) {
this.resource = resourc