Библиотека пейджинга с базой данных, а также сетевой запрос

У меня есть БД с 1000 записей. Мне нужно реализовать разбиение на страницы, чтобы получать 30 записей за раз из БД при прокрутке ресайклера. Для этого я где-то читал, что у Android есть опция библиотеки пейджинга с ROOM. Но я должен загрузить данные из API также в свой адаптер. Как я могу использовать PAgedListAdapter для заполнения данных из базы данных, а также API.


person Anupriya    schedule 23.07.2018    source источник
comment
почему нельзя использовать другой адаптер для данных из API?   -  person Vladyslav Matviienko    schedule 23.07.2018
comment
@VladyslavMatviienko Вы имеете в виду два адаптера для использования с одним и тем же ресайклером, один для доступа к базе данных, а другой для привязки ответа API?   -  person Anupriya    schedule 23.07.2018
comment
да, это то, что я имею в виду. Когда вы хотите показать данные БД, вы делаете setAdapter(pagedListAdapter), а когда вам нужно из API - setAdapter(yourAPIAdapter)   -  person Vladyslav Matviienko    schedule 23.07.2018
comment
@VladyslavMatviienko как это возможно, если я показываю 40 элементов, 30 могут быть из базы данных, а остальные 10 из сети, как один и тот же ресайлер будет отображать данные с двух адаптеров одновременно?   -  person Anupriya    schedule 23.07.2018
comment
тогда у вас уже должны быть загружены эти элементы, и вам не нужны какие-либо адаптеры разбиения на страницы, но вместо этого вы можете вручную разбить загрузку на страницы.   -  person Vladyslav Matviienko    schedule 23.07.2018


Ответы (1)


вы можете использовать BoundryCallback, чтобы получать уведомления об определенных моментах вашего список БД

вот пример из Google ссылка

вот моя игровая площадка с пейджинговой ссылкой

person seyed Jafari    schedule 23.07.2018
comment
спасибо за вашу помощь, но как я могу получить тот же код на Java? - person Anupriya; 23.07.2018
comment
Kotlin очень легко читается, но если вы ответите мне с конкретным классом, который вам нужен в java, я могу преобразовать и обновить свой ответ. - person seyed Jafari; 23.07.2018