如何使用 RecyclerView 和 GridLayoutManager 制作列表列表

How can I make a list of lists with a RecyclerView and GridLayoutManager

我有一个日期列表,每天都有一个事件列表。如何在日项目中显示事件列表?与 google 日历

相同

例子 https://lh3.googleusercontent.com/bWNeO_FeYhGvuJ2UGNTrYVXWk4G3Re21-sOgdjM5V7ZaxehFUJDq7qaevvASs5tnbLNL=w1536-h674-rw

在您的 day 单元格中,创建另一个包含(垂直项目)的回收器视图。假设每个位置都有不同的数据列表,所以从每个父位置收集数据并设置为每个位置的 childAdapter

示例:

  1. 假设您有一个使用回收器视图的日历,它通过 ParentViewHolder 保存数据。
  2. 在您的 ParentViewHolder 中创建另一个类似 ChildRecyclerView 的 Recycler View。
  3. 使用 ChildViewHolder 为持有垂直项目的 ChildRecyclerView 创建 ChildAdapter。
  4. 在 ChildViewHolder 上添加必要的操作。

1.The 带 GridLayoutManger 的 RecyclerView 中的日项目视图

2.The RecyclerView 中带有 LinearLayoutManger 的事件项视图

3.Set事件RecyclerView的高度为wrap_content

4.To 为了获得好的性能你应该让所有的 RecyclerView 使用相同的 RecyclerViewPool:

在Activity/Fragment中:

// field
var globalViewPool = RecycledViewPool()
// ....

// init view
dayRecyclerView.setRecycledViewPool(globalViewPool)

在事件适配器中:

// onCreateViewHolder
eventRecyclerView.setRecycledViewPool(globalViewPool)