如何摆脱 GridLayoutManager 项目之间的差距

Posted

技术标签:

【中文标题】如何摆脱 GridLayoutManager 项目之间的差距【英文标题】:How to get rid of gaps between GridLayoutManager items 【发布时间】:2020-11-22 21:19:57 【问题描述】:

我正在使用 RecyclerViewGridLayoutManager 布局管理器。

recyclerView.setLayoutManager(new GridLayoutManager(context, 3))

但是由于我的项目布局的高度是wrap_content,所以项目之间存在一些差距。 我该如何摆脱它们?

【问题讨论】:

【参考方案1】:

我认为GridLayoutManager 是不可能的(或非常困难的)。但你可以使用: StaggeredGridLayoutManager

一个 LayoutManager,它以交错的网格形式布置子级。它支持水平和垂直布局以及反向布局子级的能力。 交错的网格很可能在布局的边缘有间隙。为了避免这些差距,StaggeredGridLayoutManager 可以独立偏移跨度或在跨度之间移动项目。您可以通过setGapStrategy(int) 控制此行为。

Code example

【讨论】:

感谢您的回答。实际上我不知道 StaggeredGridLayoutManager。改变我的布局管理器就行了。

以上是关于如何摆脱 GridLayoutManager 项目之间的差距的主要内容,如果未能解决你的问题,请参考以下文章

如何在 GridLayoutManager 中设置项目行的高度

GridLayoutManager 中的不同(动态)项目高度

如何将 GridLayoutManager 中的项目固定为具有不同跨度计数的父项的开始和结束

为啥 RecyclerView 项目在 GridLayoutManager 中随机移动位置?

RecyclerView 项目不在 GridLayoutManager 的中心

使用 GridLayoutManager 实现 RecyclerView 时将项目居中