Сохранить состояние динамического ViewPager
У меня есть приложение для Android, в котором я хочу динамически добавлять и удалять фрагменты в ViewPager во время выполнения и сохранять фрагменты при изменениях конфигурации.
До сих пор я реализовал FragmentStatePagerAdapter, держа мои фрагменты в списке с помощью методов. add
, remove
а также replace
манипулировать моими фрагментами. По сути, все, что они делают, это вставляют или удаляют фрагмент в списке, а затем вызывают notifyDatasetChanged()
, Я вставляю фрагмент фрагмента как новый фрагмент во время действий onCreate()
метод.
Я знаю, хочу сохранить мои фрагменты во время изменений конфигурации. В настоящее время, когда я меняю ориентацию экрана, все мои текущие фрагменты удаляются, и я возвращаюсь к начальному фрагменту, естественно, потому что действие воссоздается, а фрагмент и адаптер восстанавливаются во время onCreate()
вызов. Я пытался сохранить состояние адаптера с помощью Adapter.saveInstance()
во время деятельности onPause()
, но когда я пытаюсь восстановить его через Adapter.restoreInstance()
Я получаю пустой адаптер.
Может кто-нибудь дать мне подсказку о том, как правильно в Android сохранить состояние FragmentStatePagerAdapter
?
1 ответ
Чтобы сохранить состояние текущего фрагмента, я думаю, что в первую очередь вам нужно проверить, какой фрагмент в данный момент добавлен / виден в активности контейнера. Получив этот фрагмент, просто используйте метод onSaveInstanceState() операции контейнера, чтобы сохранить экземпляр текущего фрагмента.
Для просмотра фрагмента кода перейдите по этой ссылке.