置換を介して複数のフラグメントを切り替えています。フラグメントもバック スタックに追加されます。
ここで、向きを変更してもフラグメントが再度作成されないようにしたいと考えています。それぞれ装着setRetainInstance(true)
しました。
フラグメント A は正常に動作します。次に、フラグメント B に切り替え、画面を回転させてフラグメント A を表示します。何が間違っているのでしょうか? それともこれは予想されますか?
置換を介して複数のフラグメントを切り替えています。フラグメントもバック スタックに追加されます。
ここで、向きを変更してもフラグメントが再度作成されないようにしたいと考えています。それぞれ装着setRetainInstance(true)
しました。
フラグメント A は正常に動作します。次に、フラグメント B に切り替え、画面を回転させてフラグメント A を表示します。何が間違っているのでしょうか? それともこれは予想されますか?
フラグメントにsetRetainInstance(true)を呼び出しても、アクティビティの破棄と再作成は停止しません。おそらく、onCreateメソッドで最初のフラグメントを初期化するため、最初のフラグメントでは期待どおりに動作しますが、2 番目のフラグメントでは動作しません。アクティビティでonSaveInstanceStateメソッドを使用して表示されるフラグメントを保存し、対応するフラグメントを OnCreate で表示するか、アクティビティ フラグをandroid:configChanges="keyboardHidden|orientation|screenSize"に設定して画面上で破壊されないようにする必要があります。向き変更。