Pull to refresh

Comments 10

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

— Поддержка программного скролла посредством fakeScrollBy();
— Возможность вручную выставить количество подгружаемых элементов;

Первый пункт был и в ViewPager, он реализуется методами fakeDragBy() и endFakeDrag(). Насчет второго пункта, если вы про setOffscreenPageLimit(), то это, разумеется, тоже присутствовало в первой версии.
Оба пункта скорее относятся не к превосходству компонента над предшественником, а об удобности его использования в принципе.
setOffscreenPageLimit в ViewPager действительно был, но его не было у RecyclerView. Точнее, похожий эффект может быть достигнут с помощью довольно сложных манипуляций с LayoutManager'ом, что и сделали разработчики VP2.
Понял. Просто после списка плюсы/минусы, вы делаете следующий вывод:
И хотя пускать новый виджет в продакшн ещё рано, можно с уверенностью сказать, что после полноценного релиза он может и должен полностью вытеснить своего прародителя.

Что какбы наталкивает на мысль, что речь шла о плюсах в сравнении с «прародителем», который на самом деле даже не близкий родственник.
Полагаю, бесконечную циклическую прокрутку фиксированного числа (предзагруженных) страниц здесь тоже без костылей не реализовать?
Решения «из коробки» нет, но так как под капотом RecyclerView, и в качестве адаптера у пейджера можно использовать RecyclerView.Adapter, можно ворох уже готовых инструментов для упрощения работы с ним. Например, уже упомянутый в статье EasyAdapter имеет эту функцию, и включается она простым вызовом метода:
adapter.setInfiniteScroll(true)

Пример работы со списком с RecyclerView.Adapter и динамическим списком с эмуляцией пагинации можете найти в этой ветке семпла.
На сколько я помню есть проблемы со взаимодействием с TabLayout
Ну с учётом того, что текущая версия ViewPager2 — 1.0.0-beta05, то любые проблемы ещё могут быть.
Очень сложный код, особенно для тех, кто не очень хорошо разбирается в котлине.
Sign up to leave a comment.