ContiguousDataSource используется, когда последовательность данных должна быть загружена одна за другой. Большинство наших вариантов использования будут охвачены в этой категории.
Как вы упомянули, PageKeyedDataSource и ItemKeyedDataSource являются реализациями ContiguousDataSource.
ItemKeyedDataSource:
Инкрементальный загрузчик данных для контента с подкачкой, где загруженный контент использует ранее загруженные элементы в качестве входных данных для будущих загрузок.
PageKeyedDataSource:
Инкрементальный загрузчик данных для содержимого на основе страниц, где запросы будут возвращать ключи для следующих / предыдущих страниц.
В обоих случаях вам нужно использовать данные со страницы N - 1 для загрузки страницы N.
Non-ContiguousDataSource :
Перейдите непосредственно к определенной части в наборе данных и загрузите материал вокруг этого. Eg: Приложение контактов, в котором вы переходите от «A» к «H».
Android Paging также поддерживает эту функцию с реализацией DataSource PositionalDataSource .
Это помогает загружать исчисляемые данные фиксированного размера, поддерживая загрузки фиксированного размера в произвольных положениях страницы.