アプリには、親と一致するフレームレイアウト コンテナーを持つフラグメント アクティビティがあります。ユーザーはフラグメント ui とやり取りし、互いに置き換えて、次のように古いものをバックスタックに入れます: A -> B -> C -> D -> E -> F
たとえば、フラグメント D でユーザーが電話の向きを変更し、フラグメント E に移動したい場合、フラグメント A のビューが表示され、ユーザーがこのフラグメント A (通常はフラグメント B に移動) で何かを押すと、フラグメント F のビューが表示されます。示します。
画面の向きを変更した後、AではなくフラグメントEを表示する方法は?
アプリは最新の Android サポート ライブラリを使用しており、これは Android 4.1 エミュレーターと Android 2.3 電話で発生します (他の Android バージョンはテストされていません)。
すべてのフラグメントには、この go next fragment メソッドがあります。
public final void showNextFragment(final Fragment frg, final String tag) {
final FragmentTransaction tr = getFragmentManager().beginTransaction();
tr.remove(this);
tr.add(R.id.fragment_container, frg, tag);
tr.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
tr.addToBackStack(tag);
tr.commit();
}
編集
フラグメント D で画面を回転すると、すべての回転が正常に行われ、フラグメント D のビューが表示されます。ユーザーが上記の方法を使用してフラグメント E に移動すると、回転後にフラグメント A のビューが E ではなく表示されるという問題があります。ユーザーが電話フラグメント E を回転しない場合、フラグメント E が表示されます通常は。