добавить заголовки разделов списка с помощью PagedListAdapter / PagedList - PullRequest
1 голос
/ 27 марта 2019

Я бы хотел, чтобы заголовки в списке использовались компоненты android.arch.paging.

enter image description here

Обычно это достаточно просто, просто добавьте различные типы для адаптера RecyclerView для обработки и создания нового списка из элементов, включая заголовки.

Но с компонентами подкачки я, по сути, передаю PagedList a PositionalDataSource из запроса SQL. Можно ли прервать это и добавить типы заголовков?

1 Ответ

1 голос
/ 29 марта 2019

Как я решил эту проблему для всех, кто заинтересовался.

при привязке данных, которые я передаю и в предыдущем элементе

  override fun onBindViewHolder(holder: ViewHolder, position: Int) {
    val item = getItem(position)
    val previousItem = if (position == 0) null else getItem(position - 1)
    holder.bind(item, previousItem)
  }

Затем каждое представление устанавливает заголовок, который является толькостановится видимым, если предыдущий элемент не имеет того же заголовка.

    val previousHeader =  previousItem?.name?.capitalize().first()
    val header = item?.name?.capitalize()?.first()
    view.cachedContactHeader.text = header
    view.cachedContactHeader.isVisible  = previousHeader != header
...