Сохранить состояние динамического ViewPager

У меня есть приложение для Android, в котором я хочу динамически добавлять и удалять фрагменты в ViewPager во время выполнения и сохранять фрагменты при изменениях конфигурации.

До сих пор я реализовал FragmentStatePagerAdapter, держа мои фрагменты в списке с помощью методов. add, remove а также replace манипулировать моими фрагментами. По сути, все, что они делают, это вставляют или удаляют фрагмент в списке, а затем вызывают notifyDatasetChanged(), Я вставляю фрагмент фрагмента как новый фрагмент во время действий onCreate() метод.

Я знаю, хочу сохранить мои фрагменты во время изменений конфигурации. В настоящее время, когда я меняю ориентацию экрана, все мои текущие фрагменты удаляются, и я возвращаюсь к начальному фрагменту, естественно, потому что действие воссоздается, а фрагмент и адаптер восстанавливаются во время onCreate() вызов. Я пытался сохранить состояние адаптера с помощью Adapter.saveInstance() во время деятельности onPause(), но когда я пытаюсь восстановить его через Adapter.restoreInstance()Я получаю пустой адаптер.

Может кто-нибудь дать мне подсказку о том, как правильно в Android сохранить состояние FragmentStatePagerAdapter?

1 ответ

Решение

Чтобы сохранить состояние текущего фрагмента, я думаю, что в первую очередь вам нужно проверить, какой фрагмент в данный момент добавлен / виден в активности контейнера. Получив этот фрагмент, просто используйте метод onSaveInstanceState() операции контейнера, чтобы сохранить экземпляр текущего фрагмента.

Для просмотра фрагмента кода перейдите по этой ссылке.

Другие вопросы по тегам