Androidは、方向の変化に私の断片を自動的に再び再び添加します
-
27-10-2019 - |
質問
私は持っています ListFragment
ホスティングに依存します Activity
適切に初期化します。最初の実行では、問題なくロードされます。オリエンテーションを変更すると、アプリがクラッシュします。スタックトレースから、私が追加しようとしているわけではありません Fragment
むしろ、むしろAndroidが復元しようとしています Fragment
.
私は持っている setRetainInstance(false)
に設定されています onStart
方法ですが、の復元を無効にする方法が見つかりません Fragment
方向が変わったら。何か案は?削除する必要がありますか Fragment
アプリが破壊される前は?
編集:アクティビティが準備が整うまでリストの初期化を遅らせることになりました。 Androidは、アダプターが設定されるまで「ロード」メッセージを便利に表示します。
解決
アクティビティが準備が整うまでリストの初期化を遅らせることになりました。 Androidは、アダプターが設定されるまで「ロード」メッセージを便利に表示します。
他のヒント
適切に初期化するためのホスティングアクティビティに依存するリストフラグメントがあります。
それはすぐそこにあなたの困難かもしれません。
スタックトレースから、フラグメントを早期に追加しようとしているわけではなく、Androidがフラグメントを復元しようとしているわけではありません。
正しい。
何か案は?
構成の変更を適切に処理することに焦点を当てます。間 onSaveInstanceState()
フラグメントとの組み合わせ onRetainNonConfigurationInstance()
, getLastNonConfigurationInstance()
(両方 Activity
) と onAttach()
(あなたに Fragment
)、古い断片にあるものは何でも、クラッシュすることなく新しいものに渡すことができるはずです。構成の変更については、「適切に初期化するためのホスティングアクティビティ」に依存しないでください。