FragmentTransaction.remove hat keine Auswirkung

Meine Anforderung ist ganz einfach: Ich habe eine Schaltfläche, die ein FragmentA durch FragmentB ersetzen soll.

Das klingt einfach und funktioniert fast. Das große Problem ist, dass das alte Fragment nicht entfernt und das neue auf der Vorderseite des alten platziert wird und sie in meinem Layout "zusammenleben".

Der Code:

FragmentManager fragMgr = a.getSupportFragmentManager();
Fragment currentFragment = (Fragment) fragMgr.findFragmentById(R.id.fragmentitself);

if(currentFragment!=null){

     FragmentTransaction fragTrans = fragMgr.beginTransaction();
     fragTrans.remove(currentFragment);

     FragmentB newFragment = new FragmentB();
     fragTrans.replace(R.id.fragmentcontainer, newFragment);
     // I have also tried with R.id.fragmentitself
     fragTrans.addToBackStack(null);
     fragTrans.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
     fragTrans.commit();
}

Das Layout:

<FrameLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="2" 
    android:id="@+id/fragmentcontainer">

    <fragment
        android:id="@+id/fragmentitself"
        android:name="com.WazaBe.MyApp.FragmentA"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</FrameLayout>

Antworten auf die Frage(3)

Ihre Antwort auf die Frage