相关文章:
BaseRecyclerViewAdapterHelper详细介绍(一)
BaseRecyclerViewAdapterHelper详细介绍(三)----实现点击事件,添加头布局,脚布局
一,有两种方式实现嵌套功能
1,第一种实现方式 继承BaseMultiItemQuickAdapter
public class OpenRecordAddapter extends BaseMultiItemQuickAdapter<HappyBaseCategoryLists.BaseCategoryBean, BaseViewHolder> {
public static final int ITEM_TITLE = 1;
public static final int ITEM_CONTENT = 2;
public OpenRecordAddapter(@Nullable List<HappyBaseCategoryLists.BaseCategoryBean> data)
{
super(data);
addItemType(RvNestActivity.BIG_BEAN_ITEM_TYPE, R.layout.item_parent2);
addItemType(RvNestActivity.SMALL_BEAN_ITEM_TYPE, R.layout.item_child2);
}
@Override
protected void convert(BaseViewHolder helper, HappyBaseCategoryLists.BaseCategoryBean
item) {
// 第三步:设置不同布局下的组件数据
switch (helper.getItemViewType()) {
case RvNestActivity.BIG_BEAN_ITEM_TYPE:
helper.setText(R.id.parent_name, item.getClassContent());
break;
case RvNestActivity.SMALL_BEAN_ITEM_TYPE:
helper.setText(R.id.child_name, item.getClassContent())
.addOnClickListener(R.id.btn_repair);
break;
}
}
}
2,第二种实现方式 继承BaseQuickAdapter
public class OpenRecordAddapter extends BaseQuickAdapter<HappyBaseCategoryLists.BaseCategoryBean, BaseViewHolder> {
public static final int ITEM_TITLE = 1;
public static final int ITEM_CONTENT = 2;
public OpenRecordAddapter(@Nullable List<HappyBaseCategoryLists.BaseCategoryBean>
data) {
super(data);
// 第一步:动态判断
setMultiTypeDelegate(new
MultiTypeDelegate<HappyBaseCategoryLists.BaseCategoryBean>() {
@Override
protected int getItemType(HappyBaseCategoryLists.BaseCategoryBean
baseCategoryBean) {
// 当前例子中只有两种类型
if(baseCategoryBean.getItemType() == RvNestActivity.BIG_BEAN_ITEM_TYPE){
return ITEM_TITLE; // 加载头布局
}else if(baseCategoryBean.getItemType() ==
RvNestActivity.SMALL_BEAN_ITEM_TYPE){
return ITEM_CONTENT; // 加载内容布局
}
return 0;
}
});
// 第二步:设置type和layout的对应关系
getMultiTypeDelegate().registerItemType(ITEM_TITLE, R.layout.item_parent2)
.registerItemType(ITEM_CONTENT,R.layout.item_child2);
}
@Override
protected void convert(BaseViewHolder helper, HappyBaseCategoryLists.BaseCategoryBean
item) {
// 第三步:设置不同布局下的组件数据
switch (helper.getItemViewType()) {
case RvNestActivity.BIG_BEAN_ITEM_TYPE:
helper.setText(R.id.parent_name, item.getClassContent());
break;
case RvNestActivity.SMALL_BEAN_ITEM_TYPE: //ITEM_CONTENT
helper.setText(R.id.child_name, item.getClassContent())
.addOnClickListener(R.id.btn_repair);
break;
}
}
}