如何摆脱 GridLayoutManager 项目之间的差距
Posted
技术标签:
【中文标题】如何摆脱 GridLayoutManager 项目之间的差距【英文标题】:How to get rid of gaps between GridLayoutManager items 【发布时间】:2020-11-22 21:19:57 【问题描述】:我正在使用 RecyclerView
和 GridLayoutManager
布局管理器。
recyclerView.setLayoutManager(new GridLayoutManager(context, 3))
但是由于我的项目布局的高度是wrap_content
,所以项目之间存在一些差距。
我该如何摆脱它们?
【问题讨论】:
【参考方案1】:我认为GridLayoutManager
是不可能的(或非常困难的)。但你可以使用: StaggeredGridLayoutManager
一个 LayoutManager,它以交错的网格形式布置子级。它支持水平和垂直布局以及反向布局子级的能力。 交错的网格很可能在布局的边缘有间隙。为了避免这些差距,StaggeredGridLayoutManager 可以独立偏移跨度或在跨度之间移动项目。您可以通过
setGapStrategy(int)
控制此行为。
Code example
【讨论】:
感谢您的回答。实际上我不知道 StaggeredGridLayoutManager。改变我的布局管理器就行了。以上是关于如何摆脱 GridLayoutManager 项目之间的差距的主要内容,如果未能解决你的问题,请参考以下文章
如何在 GridLayoutManager 中设置项目行的高度
GridLayoutManager 中的不同(动态)项目高度
如何将 GridLayoutManager 中的项目固定为具有不同跨度计数的父项的开始和结束
为啥 RecyclerView 项目在 GridLayoutManager 中随机移动位置?