私は、左側のメニュー項目のリスト(フラグメントM)と右側の現在選択されている項目の詳細(フラグメントD)の2つのペインでアクティビティを持っています。Android onConfigurationChanged:フラグメントバックスタックを保存して復元する方法は?
ユーザがフラグメントDでアイテムを選択すると、フラグメントDが別のフラグメントに置き換えられます(D1とします)。ユーザがフラグメントD1内のアイテムを選択すると、フラグメントD1は別のフラグメント(D2と呼ぶ)に置き換えられ、以下同様に続きます。 もちろん、ユーザーが戻るボタンを押すと、フラグメント履歴:D2-> D1-> Dに戻ることができます。
私の問題は、構成を変更したとき(特に画面の向きに合わせて)、完全なフラグメントバックスタックを保存して復元するにはどうすればいいですか?
これまで誰もこの問題を抱えていなかったのは私にとっては奇妙なことですが、GoogleとStack Overflowでの検索ではこれについて何も見つかりませんでした。私が関連する投稿を見逃した場合、私にそれに対処してください。
アクティビティの再作成を避けるために、android:configChanges="orientation|screenSize"
属性を自分のアクティビティに単に追加することができますが、それはできません。
私がそれを行うことができないのは、私が後方互換性のためにAction Bar Sherlock(バージョン4)を使用していて、コンポーネントがAFAIK設定変更時に正しく動作するためにアクティビティの再作成が必要なことです。
アクティビティを破棄して再作成せずにアクションバーシャーロックコンポーネントを再作成する別の方法がある場合は、お知らせください。
ありがとうございます。
@ Iarham1あなたのお返事ありがとうございます。残念ながら、ABS4は、android:configChanges = "orientation"が[issue#279]で説明されているようにいくつかのOSバージョン(例:2.3.7)でいくつかの問題がありますhttps://github.com/JakeWharton/ActionBarSherlock/issues/279#issuecomment-4934511)、これは現時点で実行可能な解決策ではありません。 Jake Whartonが近い将来に修正されることを願っていますが、その間に、あなたや他の誰かが、コンフィギュレーションの変更時に完全なフラグメントバックスタックを保存して復元する方法を知っていますか?あるいは、ABSコードを微調整してコンフィグレーション変更時にABSのみをプログラムで再作成する方法はありますか? – Luke