質問: getFragmentManager(); if (fragmentManager.getBackStackEntryCount() > 0) { fragmentManager.popBackStack(); return; } finish(); } ``` 以下の説明において、FragmentAはWebView・FragmentBはListViewです。 (アプリには他にもFragmentがありますが、今回の説明で不要なので省きます。) ListViewにも複数のページがあり、何ページへ行っていてもWebViewへ戻れるようにしたいので、 ~~FragmentBは~~FragmentB_2〜(ListViewの2ページ目以降)はBackStackへ追加しないようにしています。 今回以下のような移動をしたところ、FragmentB_4の背景が透過されて下にFragmentA_3が見えてしまいました。 ``` FragmentA_1 遷移→FragmentA_2 遷移→FragmentB_1 遷移→FragmentB_2 遷移→ FragmentB_3 戻る→FragmentA_2 戻る→ FragmentA_1 遷移→FragmentA_3 遷移→FragmentB_4 ``` FragmentB_4を表示している時に戻るキーを押すとFragmentA_3が表示されて欲しいのですが、 この状況ですとなぜか押した時にFragmentA_1が表示されます。 FragmentAはWebViewをフルで表示しているからか背景の透過は見られません。 xmlでFragmentBの背景色を指定すると、上の流れでFragmentB_4を表示した時に背景の透過は見られませんが、やはり戻るキーを押すとFragmentA_1が表示されます。 FragmentBをBackStackに追加するようにすれば表示は特に問題はないのですが、 仕様上FragmentBでページ移動した分戻らないとFragmentAが表示されないというのが不便なのでBackStackには追加したくないと考えています。 どうすればやりたいようなことができるでしょうか?
回答: 解決できたので回答に書きます。 FragmentAをBackStackに追加する時にタグを追加し、 FragmentB_2〜戻る時に`FragmentManager#popBackStack(String,int)`を使うことによってやりたいことができました。