RecyclerView/StaggeredGridLayoutManager:强制一组连续的视图进入同一个 span/column

RecyclerView/StaggeredGridLayoutManager: Force group of consecutive views into the same span/column

目前,我正在使用 RecyclerView 显示一组具有不同视图类型的视图,其中一组连续的项目属于一起:一个 header、一组可变的内容项目和一个 separator/footer。 现在我还希望我的 UI 在更大的设备上看起来不错,也就是使用多个窗格,所以我切换到 StaggeredGridLayoutManager。这里的问题是它在所有跨度之间平均分布视图,这意味着一个组分布在多个列上。 因此,我想指定布局管理器将一组连续的视图放入同一跨度中,然后才将下一组放入下一个视图中。 我使用的 LayoutManager 是否有可能以某种方式实现这一点?我可以修改它使其像那样工作而不只是复制和编辑它吗?支持 lib 开发人员:是否有计划引入此类行为?

请告诉我是否应该提供任何其他信息,以及什么时候不够清楚。

您可以使用支持库的 StaggeredGridLayoutManager 实现您想要的布局;您需要使每个 'group' 项目(例如 header1 + 1-3 + footer)成为适配器返回的单个视图。此视图本身可以是 RecyclerView.

也就是说,您将有一个外部 RecyclerView 和一个 StaggeredGridLayoutManager 以及多个内部 RecyclerViewLinearLayoutManager。您可能会在内部 RV 之间共享一个 RecycledViewPool。您必须做一些体操才能为内部 RV 创建合适的适配器,但这可能比编写您自己的适配器更简单 LayoutManager!!