Как обращаться с сохранением состояния фрагментов внутри ViewPager, который находится внутри фрагмента NavigationDrawer?

Фон

У меня есть следующий сценарий:

Есть навигационный ящик с предметами. каждый переключается на другой фрагмент.Один из фрагментов содержит viewPager, который содержит фрагменты.Каждый из фрагментов viewPager содержит ListView.Когда пользователь переключается между страницами viewPager или переходит к другому фрагменту навигационного ящика, а затем обратно к одному из фрагментов viewPager, ListView должен быть восстановлен в своем первоначальном состоянии.

Все, что я использовал, это через библиотеку поддержки.

Эта проблема

Кажется, что эта ситуация не работает с библиотекой поддержки, и я получаю различные исключения, например:

 NullPointerException: Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference viewpager
Что я нашел

Я узнал, что эта проблема известна (ссылкаВот)

Что я сделал (и это работает) это:

фрагмент с viewPager содержит все экземпляры фрагментов.каждый фрагмент в viewpager хранит свое завышенное представление и возвращает его в случае вызова onCreateView.каждый фрагмент в окне просмотра сохраняет и восстанавливает свое сохраненное состояние, как в обычных фрагментах.адаптер, который я использую для viewPager, происходит от «FragmentStatePagerAdapter» и имеет функцию «restoreState», которую он переопределяет, которая не будет вызывать «super.restoreState ()».действие, которое переключается между фрагментами, содержит ссылку на фрагмент с помощью viewPager.

Это довольно расточительно (хранение ссылок на фрагменты и представления), но это работает.

Вопрос

Есть ли лучшее решение, чем это?

Ответы на вопрос(0)

Ваш ответ на вопрос