【问题标题】:How to create multi-layered RecyclerView adapter?如何创建多层 RecyclerView 适配器?
【发布时间】:2020-09-06 13:13:30
【问题描述】:

在我的 Android 项目中,我有一个复杂的 RecyclerView。我的 RecyclerView 的结构看起来像附加的图像。

简而言之,我有一个包含 CardView 的主 RecyclerView,在 CardView 中我有另一个 RecyclerView,每个元素都可以展开和折叠。

我曾尝试使用嵌套的 RecyclerView 实现(通过键入“Nested RecyclerView”在 Google 中很容易找到),但这种实现存在瓶颈。当我调用 onBindViewHolder 时,它会调用 setAdapter 方法并在我滚动 RecyclerView 时导致错误。

您能否给我一些关于如何实现此类 RecyclerView 的提示?构建此类 Recycler 适配器的最佳方法是什么?

Here is an image how it looks like

Here is what I found about my way of implementing RecyclerView

【问题讨论】:

  • RecyclerViews 应该在您有很多项目并且您不希望所有项目都在内存中时使用(因此 Android 会回收视图)。通过检查您的图像,您似乎每个项目只有三个子项目,因此我不会对子项目使用 RecyclerView。您可以拥有项目的主要 RecyclerView,然后在每个项目上,您可以手动在垂直 LinearLayout 中膨胀子项目。
  • 嵌套项的数量不固定。它可以是 10-20-50。他们每个人也可以展开-折叠。将分为三个级别:第一个是带有列表的卡片,每个列表的每个项目都可以展开-折叠,展开的项目中将是一个带有 Views 和另一个 RecyclerView 的布局

标签: android kotlin android-recyclerview heterogeneous


【解决方案1】:

这可以通过 Concat 适配器轻松完成。

https://www.youtube.com/watch?v=n_mrrva_z

这是我使用 Concat 适配器的 Mockup 应用程序。

将 Concat Adpater 视为一个数组列表。它的编码类似于ConcatAdapter(HeaderAdapter, Adapter2, HorizontalAdapter)

【讨论】:

  • 您附加的视频不可用((
  • 我发现 Groupie 库可以帮助我。它使我的 RecyclerView 比以前快一点,但是当我添加 > 100 个嵌套元素时它仍然工作得很慢
  • 你能打开视频吗?我限制观看
  • youtu.be/o-4OfxfpZMo 试试这个@msfvenom 该链接突出显示了如果我将 2 个视图与 concat 适配器结合起来会是什么样子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-08
相关资源
最近更新 更多