Intereting Posts
Чистая архитектура Почему мы получаем эти «недействительные» намерения? Как настроить навигационный ящик для открытия справа налево Ошибка камеры «Не удается подключиться к камере» или на некоторых телефонах появляется ошибка «Камера используется другим приложением», Ошибка медиаплеера (262, 0) Почему браузер эмулятора Android просто выходит на главный экран при вводе URL-адреса и нажмите клавишу ввода? Создатель вложенной директории: Phonegap Использование сканера отпечатков пальцев для Android для приложений Метод getFragmentManager () не определен для типа MainActivity Доступ к целым ресурсам в xml ImageButton с использованием переходов в Android Активность, запущенная из широковещательного приемника, сохраняет в последнее время задачи, несмотря на то, что они были закончены Переключение с фрагмента с фрагментом карты оставляет черный экран Неровность сосудов! Исправьте свои зависимости для FacebookSDK Android Kotlin: java.lang.NoClassDefFoundError: сбой разрешения: <KotlinObject>

Не удается сохранить и восстановить вложенный фрагмент?

У меня есть вложенный фрагмент, который я пытаюсь восстановить состояние с учетом изменения ориентации.

Итак, во-первых, моя настройка выглядит следующим образом:

Activity -> ParentFragment (SetRetainInstance(true)) -> ChildFragment 

В фрагменте My Child у меня есть код onSaveInstance следующим образом:

 @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); // Serialize the current dropdown position. outState.putInt(STATE_SELECTED_NAVIGATION_ITEM, getActivity().getActionBar() .getSelectedNavigationIndex()); } 

Однако, когда я ориентирую устройство во всех событиях LifeCycle, возвращается состояние savedInstance из null.

Я делаю это неправильно для ChildFragment? Почему мое состояние не сохраняется и возвращается?

Solutions Collecting From Web of "Не удается сохранить и восстановить вложенный фрагмент?"

Это связано с setRetainInstance(true) вашего родительского фрагмента. Android сохраняет фрагмент со всеми его дочерними фрагментами. Таким образом, ваш ChildFragment не разрушен, и поэтому вы получаете null в файле savedInstanceState. Документация onCreateView гласит:

SavedInstanceState Если непустой , этот фрагмент перестраивается из предыдущего сохраненного состояния, как указано здесь.

Вы можете попытаться прокомментировать setRetainInstance(true) и убедиться, что вы получили правильное значение для savedInstanceState.