对于常见的多布局,我们可以设置不同的type,例如 getItemViewType方法:
if (mDatas.get(position).getType() ==1) {
return 1;
} else if (mDatas.get(position).getType() ==2) {
return 2;
}
onCreateViewHolder方法
if (viewType == 1) {
/*显示服务的item项*/ view = LayoutInflater.from(mContext).inflate(R.layout.a, parent , false);
return new AHolder(view);
} else if (viewType == 2) {
/*显示服务title项*/ view = LayoutInflater.from(mContext).inflate(R.layout.b, parent, false);
return new BHolder(view);
onBindViewHolder方法同理
if (getItemViewType(position) == 1) {
((AHolder) holder).aTextview.setText("a");
}else{
}(( BHolder ) holder).aTextview.setText(“b”);
对于如果不同的viewType加载的list类型都不同,例如A类型需要的是Adata,类型B需要的是Bdata,一个list无法传递过来,我们需要把Adata和Bdata都继承Cdata,然后在Cdata中设置一个Type,添加不同数据类型时候设置不同type,传入判断当前type是A类型的数据还是B类型数据,强转不同数据类型加载数据