RecyclerView - 如何使 GridLayoutManager 强制将某些项目放置在下一行

Poi*_*ull 5 android gridlayoutmanager android-recyclerview

我使用 GridLayoutManager 将项目垂直放置在 RecyclerView 中。每个项目占用一个跨度。现在我希望一些项目结束当前行,因此下一个项目放置在其下方的新行上。每个项目只能占据一个跨度,以便它们的宽度相同。

例子:

在此输入图像描述

item[4] 将放置在下一行,而不是放在 item[3] 之后。item[3] 之后的空间应保留未使用。

我尝试使用 SpanSizeLookup,但它对span index我来说没有任何意义,任何值似乎都没有任何作用。

有人可以建议解决方案吗?

art*_*nig 1

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;
        }
});
Run Code Online (Sandbox Code Playgroud)

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