我知道我可以为 Android 上的项目实现具有不同 View 的 RecyclerView。
但我的需求在这里有点不同。我想知道如何实现具有不同行数项目的 RecyclerView。
例如,第一行有 2 个项目,第二行只有 1 个项目,第三行有 3 个项目,...
是否可以使用 RecyclerView 来实现此功能?如果可以,我该如何实现?
感谢您的帮助。
西尔万
最佳答案
您要查找的内容可以通过 GridLayoutManager
来完成本身,这里唯一的技巧是使用 least common multiple (lcm)每行的列数作为总跨度数。这是一个简单的例子:
@Override
public void onCreate() {
super.onCreate();
...
int spanCount = lcm(2, 1, 3, 8);
GridLayoutManager layoutManager = new GridLayoutManager(this, spanCount);
layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
int numberOfColumns;
switch (position) {
case 0:
numberOfColumns = 2;
break;
case 1:
numberOfColumns = 1;
break;
case 2:
numberOfColumns = 3;
break;
case 3:
numberOfColumns = 8;
break;
default:
numberOfColumns = spanCount;
}
return spanCount / numberOfColumns;
}
});
recyclerView.setLayoutManager(layoutManager);
...
}
public static int lcm(int... input) {
int result = input[0];
for(int i = 1; i < input.length; i++) result = lcm(result, input[i]);
return result;
}
关于android - 如何实现具有不同行数项目的 RecyclerView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57790668/