Löschen Sie ein bestimmtes Fragment aus dem Android-Backstack

Für eine Android-Tablet-Anwendung verwende ich 2 Fragmente. Eine auf der linken Seite des Bildschirms und eine auf der rechten Seite. Wenn Sie auf eine Schaltfläche am rechten Fragment klicken, wird ein weiteres Fragment am oberen Rand des rechten Fragments hinzugefügt. Dieses Fragment wird dem Backstack hinzugefügt.

FragmentTransaction ft = getFragmentManager().beginTransaction(); 
ft.add(R.id.fragmentlayout, fragment2);
ft.addToBackStack("Fragment2");
ft.commit();

Der Backstack ist jetzt:

[Fragment 1] -> [Fragment 2]

Auf der linken Seite befindet sich auch eine Schaltfläche, mit der ein Fragment über dem linken Fragment (wie Fragment2) geöffnet und dem Backstack hinzugefügt wird. Der Backstack ist jetzt

[Fragment 1] -> [Fragment 2] -> [Fragment 3]

Auf Fragment 2 befindet sich eine Schaltfläche zum Schließen dieses Fragments.

getFragmentManager().popBackStack("Fragment2", FragmentManager.POP_BACK_STACK_INCLUSIVE);

Das Problem ist, wenn ich nur [Fragment 2] schließen möchte, wird auch [Fragment 3] zerstört. Ich kann das Fragment manuell durch Aufrufen entfernen

FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
ft.remove(fragment2).commit();

Der Backstack bleibt jedoch bestehen

[Fragment 1] -> [(Geister-) Fragment 2] -> [Fragment 3]

Sie müssen also noch einmal zurück drücken, um die Anwendung zu schließen.

Gibt es eine Möglichkeit, nur [Fragment 2] aus dem Backstack zu entfernen und [Fragment 3] auf dem Bildschirm zu belassen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage