recyclerView多布局,多种不同类型数据合并处理

对于常见的多布局,我们可以设置不同的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类型数据,强转不同数据类型加载数据

你可能感兴趣的:(Android技巧)