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是的,你必须做出以任何方式计算一下:) –