相關文章:
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;
}
}
}