Вопрос не в пагинации, а в том, чтобы загруженный список хранить в памяти, подкачивать его по мере необъодимости, и выдавать порции для ListView
Попробую объяснить на близких к 1с примерах. В 1с программист практически не может влиять на отображение, потому там описывать логику работы интерфейса и связанную бизнес логику в модуле формы более менее нормально. Но в разработке на более гибких фреймворках само отображение от логики принято отделять, потому код делится на компоненты в виде кода отвечающего за оторбажение, кода отвечающего за логику обработки действий пользователя и логики отображения (блок как раз, очень близко к "модулю формы"), кода отвечающего за доступ к данным (репозитории и подобное). Иногда бывает выделяют больше компонентов, например интеракторы, но поначалу и на простых проектах нафиг оно не надо