效果圖
代碼
GridLayoutManager layoutManager = new ScrollGridLayoutManager(getActivity(),6, GridLayoutManager.VERTICAL, false);
GridLayoutManager.SpanSizeLookup spanSizeLookup = new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
//5個(gè)時(shí)為前兩個(gè)為2列速址、后三個(gè)為3列
if (position < 2) {
return 3;
} else {
return 2;
}
}
};
參數(shù)說(shuō)明
參數(shù) |
備注 |
spanCount |
每行排列 item 個(gè)數(shù)玩焰,在GridLayoutManager對(duì)象創(chuàng)建時(shí)需要傳入 |
spanSize |
當(dāng)前位置的 item 跨度大小,在 setSpanSizeLookup() 方法返回 |
解答一波
- 為什么前兩個(gè)為2列芍锚、后三個(gè)為3列時(shí)昔园,
spanCount
等于6 ?
因?yàn)?spanCount
等于 2于3的最小公倍數(shù)
例如3并炮、4默刚、5
3=3
4=2x2
5=5
然后將各式子的相同部分合并成一個(gè)質(zhì)數(shù),再乘以剩下的質(zhì)數(shù)逃魄。
上面三式?jīng)]有相同部分羡棵,只有3,2x2嗅钻,5是不相同部分皂冰。
所以 spanCount
的值是 3x2x2x5=60
- 為什么前兩個(gè)為2列、后三個(gè)為3列時(shí)养篓,
spanCount
等于6秃流,position < 2返回 3,否則返回 2柳弄。
因?yàn)?每行的item數(shù)
= spanCount
/ spanSize
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者