Ich habe ein Elternteil Fragment
enthält ein Kind Fragment
, die einige Daten anzeigt.Entfernen von ChildFragmentManager funktioniert nicht wie erwartet
Irgendwann sendet das Kindfragment, dass der Benutzer fertig ist (dass keine Daten angezeigt werden). An dieser Stelle möchte ich dieses nutzlose Fragment entfernen, aber irgendwie gelingt es mir nicht. Fehle ich etwas?
So wie ich das Fragment zu dem Behälter hinzufügen (und es funktioniert wirklich gut):
Die Art, wie ich zu gehobelt entfernen (aber es nicht funktioniert und es ist all die Variationen, die ich versucht habe):
Fragment swipe = getChildFragmentManager().findFragmentByTag("swipe");
if (swipe == null){
throw new RuntimeException("Nope");
}
getChildFragmentManager().beginTransaction().remove(swipe).commit();
getChildFragmentManager().beginTransaction().hide(swipe).commit();
getChildFragmentManager().popBackStack();
getFragmentManager().beginTransaction().remove(swipe).commit();
Ich vermisse etwas?
Dank
PS: Wenn ich sage, dass es nicht funktioniert: ich meine das Fragment nicht entfernt zu werden, und ich habe keine Ausgabe in logcat
UPDATE
Fragment swipe = getChildFragmentManager().findFragmentByTag("swipe");
if (swipe == null){
throw new RuntimeException("Nope");
}
Log.d("DEBUG", ""+getChildFragmentManager().getFragments().size());
getChildFragmentManager().beginTransaction().remove(swipe).commit();
getChildFragmentManager().popBackStack();
Log.d("DEBUG", ""+getChildFragmentManager().getFragments().size());
Hat für ein Ergebnis:
1
1
Was genau funktioniert nicht? Erhalten Sie Ihre Laufzeitausnahme? Oder ist das Fragment nicht entfernt ..? Haben Sie Informationen in Ihrem Logcat? – yennsarah
@Amy tut mir leid, das Fragment wird nicht entfernt und ich habe keine Informationen/Absturz in meinem Logcat. Lautlos fehlgeschlagen ... –
Sie fügen Ihre FragmentTransaction nicht dem Backstack hinzu, daher glaube ich nicht, dass das Ergebnis ein Ergebnis sein wird. Hast du versucht es zu debuggen? Setzen Sie einen Haltepunkt auf das "Swipe" -Fragment und überprüfen Sie, ob es angezeigt, ausgeblendet, zweimal aufgeblasen oder so ähnlich ist. – yennsarah