Использование compat lib v1 (не использование v2 | 3 из-за некоторых ошибок); вариант этого вопроса .
У меня есть фрагмент, пользовательский интерфейс которого имеет различные элементы управления, состояние которых я хочу сохранить при изменении ориентации.
Родительская активность разрушается при изменении ориентации (ПОЖАЛУЙСТА, не сообщайте мне о явных изменениях, чтобы избежать воссоздания активности !!!!).
Фрагмент вызывает setRetainInstance (true)
.
1) Теперь я понимаю, что представления с уникальными идентификаторами должны сохранять некоторое состояние, скажем, при изменении ориентации. Учитывая это, я ожидал бы ненулевого пакета в onCreateView | onActivityCreated
, но он нулевой.
2) В любом случае, если я сохраню состояние в onSaveInstanceState
(гарантируя, что я вызываю super), я все равно получаю нулевой пакет в 'onCreateView | onActivityCreated`
3) Если я не вызываю setRetainInstance (true)
, то я получаю ненулевой пакет в onCreateView | onActivityCreated
, даже если у меня нет метода onSaveInstanceState.
У меня есть вопросы: работает ли это так, как ожидалось, и мое понимание жизненного цикла нарушено? Тем не менее, я предполагаю, что лучший путь для меня - это сохранить фрагмент, а затем самостоятельно поддерживать состояние элементов управления внутри фрагмента.
Заранее спасибо. Питер.