對于常見的多布局铲觉,我們可以設(shè)置不同的type,例如 getItemViewType方法:
```
if (mDatas.get(position).getType() ==1) {
? ? ?return ? 1;
} else if (mDatas.get(position).getType() ==2) { ???
?????return ? ?2;
}
```
onCreateViewHolder方法
if (viewType == 1) {
????/*顯示服務(wù)的item項(xiàng)*/ view = LayoutInflater.from(mContext).inflate(R.layout.a, ? parent ,???false);
????return new AHolder(view);
} else if (viewType == 2) {
????/*顯示服務(wù)title項(xiàng)*/ 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中設(shè)置一個Type,添加不同數(shù)據(jù)類型時(shí)候設(shè)置不同type们妥,傳入判斷當(dāng)前type是A類型的數(shù)據(jù)還是B類型數(shù)據(jù)带污,強(qiáng)轉(zhuǎn)不同數(shù)據(jù)類型加載數(shù)據(jù)