Ответ
Состояние View может не сохраняться во фрагменте по нескольким причинам:
- Отсутствие ID у View – для сохранения состояния у View должен быть установлен
android:id. Без ID система не знает, как сопоставить состояние.
<TextView
android:id="@+id/myTextView" <!-- без этого состояние не сохранится -->
... />
-
Фрагмент не вызывал
onSaveInstanceState()– если фрагмент был уничтожен (например, при повороте экрана), но не сохранил состояние. -
saveEnabled = false– явное отключение сохранения состояния у View:
myView.isSaveEnabled = false
-
Использование
setRetainInstance(true)– это сохраняет экземпляр фрагмента, но не состояние его View. -
Неправильная работа с
Bundle– если вonSaveInstanceState()не сохраняются нужные данные или не восстанавливаются вonViewStateRestored().