Android GridLayout 基于行宽的不同跨度计数

Android GridLayout different span count based on row width

我有一个以 GridLayoutManager 作为布局管理器的 recyclerview,我想要实现的如下图所示

如您所见,每一行可能仅根据项目宽度有多个项目,每个项目都是一个具有 wrap_content 宽度的 TextView,但所有项目都具有相同的高度。
我知道可以通过 SpanSizeLookup 设置行跨度,但为此,我应该知道之前的跨度数,而我的列表行将仅按项目宽度
填充 谁能帮帮我?

使用不同的布局管理器(例如 FlexboxLayoutManager)可能会更好 https://github.com/google/flexbox-layout

它在控制何时换行(自动或手动)方面具有很大的灵活性,并且您可以指定很多控件来控制单个单元格如何 grow/shrink 填充一行。

github 页面上有很多示例。

但作为起点,您可以在单元格 3 和 7 之前手动换行,以便在第一行为 3,在第二行为 4。

或者设置 FlexWrap 将根据尺寸自动完成