在 RecyclerView 中平均分配项目
Posted
技术标签:
【中文标题】在 RecyclerView 中平均分配项目【英文标题】:Distributing Items equally in a RecyclerView 【发布时间】:2018-06-16 01:00:18 【问题描述】:目标:以某种方式水平显示项目列表(RecyclerView),它们在屏幕上平均分布,并使它们之间的边距至少 X dp,以便视图可滚动,如果不是所有视图都适合屏幕。
希望以下图片能帮助您理解我的问题:
在这里,我得到了两个在屏幕宽度上平均分布的项目:
这里有很多东西;项目之间使用“最小边距”并且回收器正在滚动
我通过预先测量我的视图来实现此行为,然后手动计算视图之间的边距,将其设置在 onBindViewHolder
内。这似乎是一种肮脏的做法,尤其是因为我需要为每个itemView
调用requestLayout
。
我使用weights
尝试了一些事情,但这似乎没有按预期工作。我正在为我的RecyclerView
使用LinearLayoutManager
。
有没有人建议如何以更好、更清洁的方式实现这种行为?
【问题讨论】:
【参考方案1】:您可以使用 recyclerView.addItemDecoration 方法来添加您的自定义项目装饰并解决您的间距问题。代码可以在here找到。希望这会有所帮助。
【讨论】:
好吧,我可以用它来代替边距,但这似乎仍然是一种奇怪的方法。不过谢谢。以上是关于在 RecyclerView 中平均分配项目的主要内容,如果未能解决你的问题,请参考以下文章
C#winform中在一个主窗体中打开几个子集窗口,如何让子集窗口在主窗体中平均分布