需求 实现一个前两列和后几列宽度不同的表格
// 代码实现
GridLayoutManager manager = new GridLayoutManager(this, 14);
manager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
if (position % 6 == 0 || position % 6 == 1) {
return 3;
} else {
return 2;
}
}
});
setSpanSizeLookup 作用:一个item的跨度,也就是这个item占用了几份
上面代码中,实现了一个6列表格,前两行宽度,和后四行的宽度比为3:2
也就是说,表格中从左到右,每个item的宽度比是:
3:3:2:2:2:2
所以,我们初始化的时候,new GridLayoutManager(this, 14);将RecyclerView定义14列,
new GridLayoutManager(this, 14);
if (position % 6 == 0 || position % 6 == 1) {
return 3;
} else {
return 2;
}
其中,上面代码实现了,前两列的item,总共占用recyclerview中14份中的3份,而后4列,每个item占用2份。
实现效果图
(ps:手动画的表格,比例不是太精确,忘见谅 _)