3 つのフラグメント (メイン、概要、ヘルプ) があります。3 つのオプション (「メイン フラグメントを表示」、「フラグメントについて表示」、「ヘルプ フラグメントを表示」) を含むメニューがあります。
3 つのメニュー オプションのいずれかを選択すると、次のようになります。
Fragment fragment = null;
switch (position) {
case 1:
fragment = new MainFragment();
break;
case 3:
fragment = new HelpFragment();
break;
case 4:
fragment = new AboutFragment();
break;
default:
break;
}
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.replace(R.id.content_frame, fragment);
ft.addToBackStack(null);
ft.commit();
2 つ、3 つ、またはそれ以上の異なるフラグメントを追加すると、問題なく動作します。
しかし、同じフラグメントを連続して追加すると、戻るボタンをクリックすると、以前に追加されたものではなく、同じフラグメントが表示されます。
もっとよく説明しましょう。
- 「フラグメントについて表示」をクリックします
- AboutFragment が MainLayout に追加されます
- AboutFragment が画面に表示されます
- 「メインフラグメントを表示」をクリック
- MainFragment が MainLayout に追加されます
- MainFragment が画面に表示される
- 「メインフラグメントを表示」をクリックします(再度)
- MainFragment が MainLayout に追加されます (再び)
- MainFragment が画面に表示されます (再び)
- 戻るボタンをクリック
- MainFragment が画面に表示されます !!
戻るボタンをクリックすると (ステップ 10)、AboutFragment を表示したいと思います。しかし、MainFragment が再び表示されます。そうですよね?または私は何か間違ったことをしていますか?前に popBackStack() 呼び出しを行う必要がありますか?
私の英語に感謝し、申し訳ありません