android - 可在两个方向上工作的交错网格布局管理器

标签 android android-layout staggeredgridlayout staggeredgridlayoutmanager

我正在尝试做的事情:

我正在尝试创建一个交错的网格布局,该布局采用具有不同宽度 高度的项目。布局动态移动项目,使它们不重叠。

我尝试过的:

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

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

最佳答案

代替 StaggeredGridLayoutManagerGridLayoutManager 可以与 spanSizeLookup 一起使用。使用 spanSizeLookup,我们可以指定列跨度。

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

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

layoutManager = GridLayoutManager(context, MAX_NUM_COL)

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

关于android - 可在两个方向上工作的交错网格布局管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56944351/

相关文章:

android - 在 StaggeredGridLayoutManager 中设置单行的跨度大小

java - 使用 StaggeredGridLayout 预加载毕加索图像

java - 项目未填满空间

Android - 即使没有在适配器的 getView 方法中进行任何处理,带图像的 ListView 滚动速度也太慢

java - AccessibilityService 可以在不打开应用程序的情况下对后台应用程序执行点击事件吗

java - Android - 找不到抛出 NullPointerException 的内容

android - ScrollView 无法正确调整自身大小

android - 我想在android中的多个geopoins之间绘制路径

java - findViewByID() 在自定义 View 类中不断返回 null

java - 全局布局监听器返回 0