看图下面的例子,要做下面的你会考虑使用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地址