ViewPager имеет общедоступную функцию setOffscreenPageLimit (http://developer.android.com/reference/android/support/v4/view/ViewPager.html#setOffscreenPageLimit(int)), что это такое? Вот описание из документа:
Установите количество страниц, которые должны сохраняться по обе стороны от текущей страницы в иерархии представлений в состоянии простоя. Страницы за пределами этого ограничения будут воссозданы из адаптера при необходимости.(Я проверил это, минимальный параметр функции равен 1, хотя я установил его на 0, он работает так же, как и 0)
Как насчет моего демо
Теперь моя демонстрация содержит пейджер с 6 фрагментами. Когда он запускается, пейджер загружает первый пейджер и второй пейджер, но на экране отображается только первый пейджер. Когда мы перейдем ко второму пейджеру, он будет загрузить третий пейджер. Все это легко понять.
Из рисунка мы можем узнать, что пейджер 2 был загружен, когда приложение показывает пейджер 1, поэтому мы можем переместить пейджер на пейджер 2, и нам не нужно снова загружать данные на пейджер 2.
Когда я переведу его на пейджер 3, пейджер 1 перейдет в состояние остановки, а пейджер 4 будет загружаться.
пейджер1 -> пейджер2 -> пейджер3 -> пейджер4
остановить -> возобновить, но не показывать -> возобновить и показать -> возобновить, но не показывать
Вот картинка, чтобы показать, что произошло выше!
Что мне нужно, чтобы мое приложение делало!
Я просто хочу, чтобы пейджер загружал данные, которые сейчас показывает пейджер. Например, при первом запуске приложения он только запускает пейджер1 и загружает то, что нужно данным на пейджере1. Pager2 не загружает данные.
Вот моя демонстрация: https://github.com/shellshy/LazyViewPager