android - RecyclerView - 如何让 GridLayoutManager 强制在下一行放置一些项目

标签 android android-recyclerview gridlayoutmanager

我使用 GridLayoutManager 将项目垂直放置在 RecyclerView 中。
每个项目占用一个跨度。
现在我想要一些项目结束当前行,所以下一个项目放在它下面的新行上。每个项目必须只能占据一个跨度,以便它们都是相同的宽度。

例子:

enter image description here

item[4] 将被放置在下一行,而不是 item[3] 之后。 item[3] 后的空格应留空。

我尝试使用 SpanSizeLookup,但它的 span index对我来说没有任何意义,任何值(value)似乎都没有做任何事情。

有人可以提出解决方案吗?

最佳答案

GridLayoutManager manager = new GridLayoutManager(getContext(), 3, LinearLayoutManager.VERTICAL, false);
    manager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
        @Override
        public int getSpanSize(int position) {
            return position == 3 ? 3 : 1;
        }
});

每个元素的跨度大小默认为 1,只需为自定义跨度查找中的位置返回所需的跨度大小。

关于android - RecyclerView - 如何让 GridLayoutManager 强制在下一行放置一些项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48862640/

相关文章:

android - 在 RecyclerView 中展开 View 不能正确设置动画

android - 使用 GridLayoutManager 增加 RecyclerView 中的单元格宽度

Android - 如何知道动画是否因为 View 的父级被隐藏而没有运行?

java - 外部存储中的 Android/Java File.mkdirs() 不工作

android - Android OpenGL是否有drawbitmap性能的离屏功能

android - 每行中具有不同列号的网格布局管理器

android - 如何在 Grid-RecyclerView 中的所有列上拉伸(stretch)原生广告?

javascript - 如何获得旧/现代浏览器的 HTML 代码兼容性

android - RecyclerView.Adapter 的 onCreateViewHolder 方法中的 parent.getContext

android - 如何在 NestedScrollView 中使用 RecyclerView