看圖下面的例子,要做下面的你會考慮使用RecycleView 跟什麼結合?可能你會說.RecycleView + GrldView或者RecycleView+RecycleyView
現在我說一種RecycleView進階用法,只需要一個RecycleView就可以做到,
demo中就有MainActivity跟各種各樣的適配器,和對應的實體類組成
BitPicDelegate:就是大圖類型
FourPicDelegate:就是一行四個圖片的類型
ThreddDPicDelegate:就是顯示一行三個圖片的類型
TowPicDeleagte:就是顯示一行2個圖片的類型
TitleDelegate: 就是標題欄:(我是x個)
每一個xxxDelegate都有自己對應的佈局,當前你也可以使用相同的佈局
控制每一行顯示多個item最重要的code就是在,MainActivity的代碼中的
gridLayoutManager.setSpanSizeLookup
函數,這裏控制了不同類型,每行所佔的item數
/**
* demo這裏一行對多12個item,這個12是由每行顯示的最小公倍數,我這裏顯示的類型有每行有1,2,3,4個,所以最小公倍數爲
* 12
*/
GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 12);
gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
final ShowBean showBean = showBeanList.get(position);
if (showBean == null) {
return 0;
}
switch (showBean.getShowType()) {
case ShowBean.Type_Title:
/**
* 指標題欄一個就佔12個
*/
return 12;
case ShowBean.Type_Big_Pic:
/**
* 大圖一個就佔12個
*/
return 12;
case ShowBean.Type_Tow_Pic:
/**
* 一行顯示兩個圖片,那一個圖片所佔的位置爲6個
*/
return 6;
case ShowBean.Type_Three_Pic:
/**
* 一行顯示三個圖片,那一個圖片所佔的位置爲4個
*/
return 4;
case ShowBean.Type_Four_Pic:
/**
* 一行顯示四個圖片,那一個圖片所佔的位置爲3個
*/
return 3;
default:
return -1;
}
}
});
在實際的開發中,還可以完成更復雜的局面佈局,而且不用擔心各種RecycleView嵌套問題
demo的傳送門:
demo中結合萬能適配器,方便一點
github地址