Как иметь два вида переработчика в одном и том же виде, один поверх другого

# #android #google-cloud-firestore #android-paging-3

Вопрос:

Я пытаюсь создать приложение для чата. Чего я хочу:

  • Для реализации бесконечного списка предыдущих сообщений
  • Добавлять новые сообщения в начало списка при каждом получении/отправке нового сообщения.

Я реализовал бесконечный список предыдущих сообщений, используя библиотеку подкачки 3, и прослушиваю новые сообщения с помощью прослушивателя моментальных снимков Firestore.

Моя проблема сейчас в том, что я не могу найти способ добавить новый список сообщений, полученных прослушивателем моментальных снимков, с адаптером подкачки, отображающим мой предыдущий список

Я пытался использовать отдельные представления переработчика для отображения предыдущих сообщений и живых сообщений, но это работает неправильно.

Комментарии:

1. Что именно вы пробовали в коде и работает не так, как вы ожидаете?

2. Я реализовал 2 вида переработчика по вертикали в одном и том же макете. Один для отображения разбитого на страницы списка предыдущих сообщений, а другой для отображения новых сообщений при каждом запуске прослушивателя моментальных снимков. Но этот подход требует переноса представления прокрутки, что не дает мне возможности плавной прокрутки. Что я хочу, так это объединить эти 2 списка в один список

3. Публикация кода, который у вас есть, может стать хорошей отправной точкой для других людей, которые помогут вам.

Ответ №1:

Что я хотел, так это иметь 2 списка на одной странице без использования 2 представлений переработчика. Я провел некоторое исследование и обнаружил, что самый простой способ добиться этого-использовать адаптер ConCat. Он объединяет 2 разных адаптера для разных входящих данных и объединяет их в один адаптер.

Для получения более подробной информации проверьте https://developer.android.com/reference/androidx/recyclerview/widget/ConcatAdapter