FragmentTwo次の状況でバックスタックから消えるのはなぜですか。
- 私のアプリにはが
Fragment呼び出さFragmentOneれましたActivity。 FragmentOneを保持しButtonます。クリックすると起動し、バックスタックFragmentTwoに追加されFragmentます。FragmentTwoがありButton、クリックすると、ActionBarリンクされている2つFragmentsのタブに2つのタブが追加さFragmentThreeれますFragmentFour。FragmentThreeが表示されます。- ここで戻るボタンをクリックすると、が表示されるはず
FragmentTwoです。代わりに、表示されますFragmentOne。どこに行ったFragmentTwoの?
onKeyDown()自分のバックスタックをオーバーライドして実装を開始する前に、Fragments私が見逃している明らかなものがあるかどうかを尋ねたいと思いましたか?これをテストするとき、構成の変更は発生しないことに注意してください。

詳細:
FragmentOneのボタンクリックハンドラーには次のものが含まれます。
FragmentTransaction ft = getFragmentManager().beginTransaction();
FragmentTwo fragment = new FragmentTwo();
ft.addToBackStack(null);
ft.replace(android.R.id.content, fragment).commit();
FragmentTwoボタンのクリックは、アクティビティで処理されます。
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
FragmentFour fragmentThree = new FragmentThree();
FragmentFive fragmentFive = new FragmentFive();
ActionBar.Tab tab = getActionBar().newTab().setText("Frag 3").setTabListener(new CustomTabListener<FragmentThree>(fragmentThree));
getActionBar().addTab(tab);
tab = getActionBar().newTab().setText("Frag 4").setTabListener(new CustomTabListener<FragmentFour>(fragmentFour));
getActionBar().addTab(tab);
タブリスナーは次のとおりです。
public static class CustomTabListener<T extends Fragment> implements TabListener {
Fragment fragment;
public CustomTabListener(Fragment fragment) {
this.fragment = fragment;
}
public void onTabSelected(Tab tab, FragmentTransaction ft) {
ft.replace(android.R.id.content, fragment);
}
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
ft.remove(fragment);
}
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}
}
Fragments表示される前にバックスタックにさらに追加するFragmentThreeと、それは常に、そのFragment直前だけFragmentThreeが消えます。
戻るキーを押してタブ付きユーザービューを終了し、に戻るとFragmentOne、タブは引き続き表示されます。にリセットする必要があることは理解していますActionBarが、の代わりにが表示されNAVIGATION_MODE_STANDARDている理由は明らかではありません。FragmentOneFragmentTwo