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 基于行宽的不同跨度计数的主要内容,如果未能解决你的问题,请参考以下文章