IDを持っている場合View、を呼び出すと自動的に保存されsuper.onSaveInstanceState(outState);ます。
にFragment追加されたsのActivity場合、再作成時に再作成される場合Activity(画面の回転など)と、再作成されない場合はどのようになりますか?何を決定しますか?ルールは何ですか?
これまでに、以下のケースを試しました。しかし、トライアルアンドエラーはルールや解決策を意味するものではありません。
Fragmentが再保存される場合:
- 通常の場合:
FragmentTransaction.add()IDのあるレイアウトに。 - UIのないフラグメント:
FragmentTransaction.add()タグのみ
Fragmentが復元されない場合:
super.onSaveInstanceState(outState);スキップされたとき。Fragment一致するIDなしでUIに復元されました。
一般的なルールは何ですか?ドキュメントで見逃したことはありますか?
前もって感謝します。
編集:
私の理解と実験では、動的に(プログラム的に)追加されたすべてのsは、呼び出しFragment時に保存されます。Activitysuper.onSaveInstanceState(outState)
- 動的に(プログラムで)追加されたすべて
Fragmentのsには、Fragmentsタグのみ(UIなし)、Fragmentに接続されているView(UIを使用)、- および
FragmentsはUIとタグの両方を備えています。 - (他にタイプはありますか?)
FragmentUIを使用してIDが一致しないレイアウトに復元する場合、Fragment実際に再作成されます。次の警告メッセージが表示され、レイアウトに視覚的に表示できません。
04-08 11:41:22.445: W/PhoneWindow(9853): Previously focused view reported id 2131165226 during save, but can't be found during restore.
一致するIDを持つUIに戻ると、正しく復元されます。