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

Posted

技术标签:

【中文标题】Android GridLayout 基于行宽的不同跨度计数【英文标题】:Android GridLayout different span count based on row width 【发布时间】:2020-08-06 18:07:46 【问题描述】:

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

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

【问题讨论】:

我认为网格布局管理器不可能。看来您需要FlowLayoutManager 之类的东西。 FlowLayoutManager 也很好,适合我的目的,但 flexbox-layout 由 google 支持并且看起来更好,但无论如何感谢您的回复 是的,其实我的意思是FlexBoxLayoutManager,但我的名字弄错了! 【参考方案1】:

使用其他布局管理器可能会更好,例如 FlexboxLayoutManager https://github.com/google/flexbox-layout

它在控制何时换行(自动或手动)方面具有很大的灵活性,您可以指定许多控制单个单元格如何增长/缩小以填充一行。

github页面上有很多例子。

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

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

【讨论】:

您刚刚完成了数小时的研究...非常感谢!为什么这个问题和这个答案没有数百个赞成票???????

以上是关于Android GridLayout 基于行宽的不同跨度计数的主要内容,如果未能解决你的问题,请参考以下文章

一起Talk Android吧(第四百零二回:如何使用GridLayout布局)

怎么设置excel的行高和行宽

PyQt5:具有相等列宽的布局按钮

Android Studio设置行宽格式化断行

android gridlayout用法

Android 布局之GridLayout