如何使用 StaggeredGridLayoutManager 在订单中创建不同大小的项目?

How to create Items with different size in an order with StaggeredGridLayoutManager?

我有一个列表,其中包含不同类别的项目。例如,我有 4 个列表,我像这样合并它们:

list1 = A,A,A,A
list2 = B,B,B,B
list3 = C,C,C,C
list4 = D,D,D,D

我这样合并这些:

mergedList=A,B,C,D,A,B,C,D,A,B,C,D,A,B,C,D

所有列表项可能有不同的大小,我想将所有 A 项定位到第一个跨度,B 项第二个跨度,C-D 项也是如此...

但是项目总是位于不同的范围内。因为项目大小不同,有些项目是在小尺寸项目之后创建的,而不是在下一个跨度中创建的。有什么方法可以解决 StaggeredGridLayoutManager 的这个问题吗?

我已经解决了这个问题。 StaggeredGridLayoutManager 每次都会将下一项添加到最小跨度。您应该计算跨度宽度并从匹配列表中选择项目。