Реализована пагинация по примеру:
https://m.habr.com/ru/post/431212/comments/
После загрузки первой порции даных переносит к последнему айтему в ресайкле.
После такого "переноса" так как это конец ресайкла сразу же подгружаеться вторая порция но после второй порции таких "переносов" нету.
Пример моего адаптера и адаптера с примера:
https://pastebin.com/wByWJY2t
Если запустить код с примера то ведёт себя при первом запуске вот так:
Всё корректно и никаких скролов к низу после первой порции данных нету.
Если запустить мой код топ при первом запуске получим вот такой результат:
Как видим сначала идёт почему-то последовательность в обратном порядке.
Так как нулевой елемент будет в самом низу то и положение ресайкла тоже внизу...
Делал всякие дурные манипуляции с DiffUtils и это влеяло на поведение ресайкла.
Но мне не удалось добиться правильной работы приложения...
Кратко как это работает:
1. При первом запуске приложения создаёться репозиторий.
2. Активность запускает всю канетесь с пагинацией.
3. Репозиторий должен дать данные.
3.1. Он смотрит в локальную БД - там пусто
3.2. Шлёт запрос на сервер и получает данные
3.3. Записывает данные в локальную БД
3.4. Данные с БД идут в List пагинации и отображаються на екране.
Далее при втором запуске ситуация схожа:
1. При запуске приложения создаёться репозиторий.
2. Активность запускает всю канетесь с пагинацией.
3. Репозиторий должен дать данные.
3.1. Он смотрит в локальную БД - там есть данные
3.2. Данные с БД пагинируються и идут в List пагинации и отображаються на екране по мере скроллинга.
3.3. Когда данные в БД кончатся - запрос на сервер за новой порцией
3.4. Записывает полученные данные в локальную БД
3.5. Данные с БД идут в List пагинации и отображаються на екране.
и так далее.
Помогите советом. Как побороть сей недуг.
Не могу найти принципиальных отличий между кодом с примера и моим..