setRetainInstance в NavigationDrawer

Я нашел много информации о методе setRetainInstance, но я хотел бы знать, как реализовать этот метод в Навигационном блоке действий?

У меня в основном есть:

  • Активность, которая содержит...
  • NavigationDrawerFragment, который содержит...
  • TopLevelMapFragment (показывает Google Maps).

Моя цель - предотвратить перезагрузку всей карты и ее треков, когда пользователь поворачивает экран. Какова основная концепция setReepingInstance в деятельности в Навигаторе навигации? Нужно ли вызывать setReedingInstance (true) в NavigationDrawerFragment И TopLevelMapFragment?

1 ответ

Наконец-то я нашел решение своей проблемы: когда я создавал активность в Навигаторе, я опирался на стандартный шаблон Активности в Навигаторе ящиков в Android Studio. В этом шаблоне метод FragmentTransaction-replace вызывается каждый раз, когда пользователь щелкает элемент в окне навигации. Проблема: метод replace уничтожает все фрагменты, которые находятся в указанном контейнере. Поэтому, если вы хотите сохранить свои фрагменты, никогда не используйте метод замены. Вместо этого вы должны использовать методы add, show и hide. Кроме того, я вызываю метод setRetainInstance (true) в моем фрагменте Google Maps, чтобы фрагмент оставался активным, например, когда пользователь поворачивает экран.

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