Абсолютно верно подмечено.
В любом случае, если захочется какой-то особенный ProgressBar, то придется создать кастомную View и точно также отрисовать загрузку в методе onDraw(). Там, конечно, сделать все будет намного проще, потому что можно настроить анимации и интерполяторы.
Либо как вариант — просто подключить библиотеку Lottie и проигрывать анимацию при появлении прогресса в элементе списка.
Если пользователь проскроллит вверх — то данные просто добавятся в конец списка без визуальных изменений для пользователя.
Если возникает ошибка загрузки, то данную ситуацию можно обработать, указав Item Decoration, что показывать пагинацию больше не требуется, воспользовавшись булевой переменной showPaginationLoading (также этот флаг необходимо переключить, когда данные были загружены полностью и более данных не будет).
Вы определенно правы и я очень рад первому комментарию)
На самом деле увидит ли пользователь индикатор загрузки зависит только от того с какой скоростью пользователь листает ленту и насколько быстро загружаются новые данные.
То есть шанс того, что придется отобразить ProgressBar есть всегда.
В любом случае, если захочется какой-то особенный ProgressBar, то придется создать кастомную View и точно также отрисовать загрузку в методе onDraw(). Там, конечно, сделать все будет намного проще, потому что можно настроить анимации и интерполяторы.
Либо как вариант — просто подключить библиотеку Lottie и проигрывать анимацию при появлении прогресса в элементе списка.
Если возникает ошибка загрузки, то данную ситуацию можно обработать, указав Item Decoration, что показывать пагинацию больше не требуется, воспользовавшись булевой переменной showPaginationLoading (также этот флаг необходимо переключить, когда данные были загружены полностью и более данных не будет).
На самом деле увидит ли пользователь индикатор загрузки зависит только от того с какой скоростью пользователь листает ленту и насколько быстро загружаются новые данные.
То есть шанс того, что придется отобразить ProgressBar есть всегда.