【问题标题】:Implemating RecyclerView containing multiple view type with andoid Paging library使用 android Paging 库实现包含多个视图类型的 RecyclerView
【发布时间】:2020-03-09 10:36:41
【问题描述】:

我的目标是使用至少两种不同类型的数据填充回收站视图。回收器视图的第一项是另一个可以水平滚动的回收器视图。其余项目可以垂直滚动。数据由房间数据库支持,作为由网络数据支持的单一事实来源。我查看了 android 官方示例和代码实验室。但无法理解如何为多个视图创建分页列表以及如何通过 PagedListAdapter 显示它们。如果我不够清楚,请询问有关该部分的问题。 图片样本:https://i.stack.imgur.com/6wZ7j.png

【问题讨论】:

    标签: android android-recyclerview android-paging android-paging-library


    【解决方案1】:

    我相信你让问题复杂化了。寻呼机适配器可以帮助您进行主寻呼,“水平”recyclerview 是一个完全不同的 RV,它有自己的适配器(我确定它也可以用作寻呼机 - 没有尝试过 -)。

    您有一个 Things 列表,您将其传递给您的主 RV 适配器。

    假设Thing 看起来像:

    data class Things(val type: Int = 0, val name: String);
    

    适配器的回调...

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int)...
    

    得到一个viewType

    所以你可能会覆盖

       override fun getItemViewType(position: Int): Int {
           return getItem(position).type
       }
    

    所以想象你的 onCreateViewHolder 现在看起来像

    val inflater = LayoutInflater.from(parent.context)
    return when (viewType) {
         0 -> BigViewHolderThatHasAnotherRecyclerViewInsideGoodLuckWithThat()
         1 -> NormalViewHolderForAllTheOtherRows()
    }
    

    或类似的...

    那么...您的问题在哪里? :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-01
      • 1970-01-01
      • 2022-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-06
      相关资源
      最近更新 更多