1
我試圖建立一個GridLayoutManager具有每行一個變量列數,像這樣一算RecyclerView同一行中的項目總是屏幕寬度。GridLayoutManager與不同的列每列
我試圖重新組織的項目列表,按行的名單將它們分組,然後充氣每行一個LinearLayout中。它工作不太好。
所以我堅持和的想法。任何幫助將非常感激
我試圖建立一個GridLayoutManager具有每行一個變量列數,像這樣一算RecyclerView同一行中的項目總是屏幕寬度。GridLayoutManager與不同的列每列
我試圖重新組織的項目列表,按行的名單將它們分組,然後充氣每行一個LinearLayout中。它工作不太好。
所以我堅持和的想法。任何幫助將非常感激
您可以使用GridLayoutManager。要在行中有不同的列數,您必須覆蓋setSpanSizeLookup。
例子:
//spanCount = 3 (just for example)
GridLayoutManager gridLayoutManager = new GridLayoutManager(getAppContext(), spanCount);
gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
//define span size for this position
//some example for your first three items
if(position == item1) {
return 1; //item will take 1/3 space of row
} else if(position == item2) {
return 2; //you will have 2/3 space of row
} else if(position == item3) {
return 3; //you will have full row size item
}
}
});
我的代碼示例上面我只顯示有您可以更改項目的大小。要注意的是spanSize
< = spanCount
。
的問題是spanCount每行變量,但還是謝謝你!我最終使用了12作爲spanCount,並進行了一些計算來調整寬度。 Usin 12,它可以正常工作,每行1,2,3和4個元素。不與5的例子,但它不是一個常見的情況 – moyo
@moyo是的,你必須做出以任何方式計算一下:) –