【Android】Activityの再生成時にFragmentを再生成させない
Activity 再生成時に Fragment を再生成させたくなかったのですが、その方法がわかったのでメモしておきます。
ちなみに Fragment は Support Library の Fragment を使用していることが前提です。
以下のコードを実装するだけで、Fragment が再生成されなくなります。
class MyActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState?.apply { remove("android:support:fragments") }) ... } ... }
こちらの StackOverflow の回答 を参考にしています。
AppCompatActivity が継承している FragmentActivity では android:support:fragments
というタグ名で Fragment の状態を Bundle に保存しているため、Activity の onCreate で保存された Fragment の情報を削除してしまえば Fragment は再生成されません。