Как сигнализировать Observable для получения большего количества данных

Есть ли способ сигнализировать Observable для получения большего количества данных?

У меня есть буферизированный Observable, который производит 10 элементов, и я хочу, чтобы он продолжал создавать больше предметов только тогда, когда захочу.

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

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

Вы можете использовать запрос (n), чтобы ваш источник данных знал, что вы готовы к большему количеству предметов.

Что вы можете сделать, это иметь Observer, который испускает события scrool страницы, назовем его paginator.

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

  paginator .onBackpressureDrop() .map { lastVisibleIndex -> (lastVisibleIndex + 2) / PAGE_SIZE + 1 } .distinct() .concatMap { page -> getCollectionsObservable(page, pageSize) } .subscribeWith(GetCollectionObserver()) ) } 
Intereting Posts
Не удалось «findViewById» в Котлине. Получение ошибки «Ошибка ввода типа» Комната Android не возвращает ничего с url как параметр В Котлине, как сделать свойство доступным только для определенного типа Случай использования анонимной функции Kotlin? Android Studio 3.0 + Kotlin Two Gradle Daemon Каковы варианты использования встроенных свойств Kotlin? Scala эквивалентный способ Range для пользовательского класса Цель камеры не работает: она входит в блок catch и говорит: «Не удалось создать файл!» Сплит-алгоритм и часть просмотра с использованием шаблона стратегии в Котлине Что значит ?. означает в Котлине при использовании в левой части задания? Управление жизненным циклом файлов cookie в сервлете Ktor 0.9.0 Как создать динамический / прозрачный прокси-сервер в Котлине? Не удалось получить групповое сообщение, используя smack Исключение при анализе выражения в AppDatabase Как файл kotlin работает на Android-версии 3.0 Canary 4?