Как я могу сделать список списков с помощью RcyclerView и GridLayoutManager - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть список дней, и у каждого дня есть список событий.Как мне показать список событий в пределах дня?так же, как Google Calendar

пример https://lh3.googleusercontent.com/bWNeO_FeYhGvuJ2UGNTrYVXWk4G3Re21-sOgdjM5V7ZaxehFUJDq7qaevvASs5tnbLNL=w1536-h674-rw

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

1. Представление элемента дня в RecyclerView с помощью GridLayoutManger

2. Представление элемента события в RecyclerView с помощью LinearLayoutManger

3. Установите высоту RecyclerView события в wrap_content

4.Для повышения производительности необходимо, чтобы все RecyclerView использовали один и тот же RecyclerViewPool:

В Activity / Fragment:

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

// init view
dayRecyclerView.setRecycledViewPool(globalViewPool)

В EventAdapter:

// onCreateViewHolder
eventRecyclerView.setRecycledViewPool(globalViewPool)
0 голосов
/ 19 февраля 2019

В вашей дневной ячейке создайте еще одно представление рециркулятора, которое удерживает (вертикальный элемент).Предположим, что каждая позиция имеет различный список данных, поэтому собирайте данные из каждой родительской позиции и задайте для childAdapter каждой позиции

Пример:

  1. Предположим, что у вас есть календарь, использующий представление рециркулятора, котороехранение данных с помощью ParentViewHolder.
  2. В вашем ParentViewHolder создайте еще один вид Recycler, например ChildRecyclerView.
  3. Создайте ChildAdapter для ChildRecyclerView, в котором содержится вертикальный элемент, с помощью ChildViewHolder.
  4. Добавьте необходимые действия в ChildViewHolder.
...