交错网格布局管理器,可在两个方向上使用

时间:2019-07-09 01:45:00

标签: android android-layout staggeredgridlayout staggeredgridlayoutmanager

我要做什么:

我正在尝试创建一个交错的网格布局,以容纳宽度 高度不同的项目。布局会动态地移动项目,因此它们不会重叠。

我尝试过的事情:

我调查了使用默认的StaggeredGridLayoutManager,但它似乎只能在一个方向上使用(即,垂直水平)。此外,我遇到的每个库或教程都只处理包含动态高度或动态宽度的项目,而不能同时处理这两个项目。

是否有一种方法可以使StaggeredGridLayoutManager动态地在垂直和水平方向上跨越?还是我必须创建自己的自定义布局管理器?如果是后者,有人可以指出我正确的方向,以了解如何创建这样的布局管理器吗?

1 个答案:

答案 0 :(得分:0)

StaggeredGridLayoutManager可以与GridLayoutManager一起使用,而不是spanSizeLookup。使用spanSizeLookup,我们可以指定列跨度。

mLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
 item[position].columnSpan
}
}

在创建GridLayoutManager时,指定像这样的最大列数

layoutManager = GridLayoutManager(context, MAX_NUM_COL)

可以通过使用跨度因子和父级的高度计算高度来应用行跨度

相关问题