-1

这是我想要实现的:

交错视图

我正在尝试显示我从网络上获得的定义(现在它们来自虚拟数据,但这既不在这里也不在那里)。

我的第一个想法是使用水平的 StaggeredGridView。这有两个问题。视图未按正确顺序排列,跨度计数未动态设置。另外,我发现在 onLayoutChildren() 中调用 setSpanCount() 会导致运行时出错。

交错视图尝试

当然,我可以只拥有一个 LinearLayout 并放弃回收视图的尝试。这在大多数情况下都有效,但如果用户确实发生了长度定义,那么内存效率将非常低。

考虑到这一点,我决定继承 StaggeredGridLayoutManager。这就是我需要你帮助的地方。以下是我在自己的搜索中找到的资源:

Google 的 LinearLayoutManager 实现

实现自定义 LayoutManager 的指南

实现自定义 LayoutManager 的另一个指南

实现自定义 LayoutManager 时要遵循的几个原则概述

我经历了其中的每一个,但我无法在心理上区分出针对其特定用例的哪些部分以及所有自定义实现所共有的部分。如果有人可以向我指出资源的方向或解释我必须以什么顺序和出于什么目的调用的所有方法,我将非常感激。谢谢!

4

1 回答 1

1

您的第一个屏幕截图看起来像是Google 的 FlexboxLayout 库的完美案例。您可以将FlexboxLayoutManager与 RecyclerView 一起使用,以准确获取您显示的内容。

于 2018-11-04T17:04:32.143 回答