recyclerview 中的 GridLayoutManager,元素之间有空间并匹配全宽
Posted
技术标签:
【中文标题】recyclerview 中的 GridLayoutManager,元素之间有空间并匹配全宽【英文标题】:GridLayoutManager in recyclerview with space among elements and matching the full width 【发布时间】:2022-01-08 01:42:39 【问题描述】:我想使用一个网格布局管理器,项目分为 2 列。 我希望每一行在项目之间平均分配,并且项目周围也有一些小空间。 我做到了:
val manager = GridLayoutManager(this, 4)
manager.spanSizeLookup = object: GridLayoutManager.SpanSizeLookup()
override fun getSpanSize(position: Int): Int = 2
recycler.layoutManager = manager
但即使每行中的项目大小相同,它们之间也有很大的差距,并且与下面的项目没有空间。 我该如何解决这个问题? 请注意,我为视图中的膨胀项目使用了特定的宽度/大小。我想这是一个问题,但不确定我应该为那些使用什么
【问题讨论】:
【参考方案1】:-
如果您只需要两个列项,则不必设置
spanSizeLookup
属性,只需设置 layoutManager
并添加 ItemDecoration
用于间距:
val manager = GridLayoutManager(this, 2)
recycler.layoutManager = manager
recycler.addItemDecoration(DividerItemDecoration(this, manager.orientation)
-
确保您的回收站项目布局父视图将其
layout_width
设置为match_parent
【讨论】:
如果我使用layout_margin="8dp"
,中间不会变成16 dp吗? IE。每个项目 8 个?
实际上只将marging添加到与recyclerview的边框
@Jim 这就是为什么您需要将填充设置为回收站视图
实际上我必须添加ItemDecoration
,否则项目没有间隔
但是您的其他 2 条建议有所帮助以上是关于recyclerview 中的 GridLayoutManager,元素之间有空间并匹配全宽的主要内容,如果未能解决你的问题,请参考以下文章
在recyclerview的嵌套recyclerview中的嵌套列表中添加项目
RecyclerView | 处理 RecyclerView 中的点击事件
AndroidStudio-添加RecyclerView包 AndroidStudio添加v7包中的RecyclerView