2016-07-15 17 views
0

enter image description hereErsetzen Haupt Fragment von seinem Kind Fragmente

Ich versuche MainFragment mit anderen Fragment von ChildFragment von MainFragment zu ersetzen. Ich mit diesem Teil des Codes:

android.support.v4.app.FragmentManager fragmentManager = getFragmentManager(); 
        Fragment fragment = null; 
        fragment = MainFragment2.class.newInstance(); 
        fragmentManager.beginTransaction().replace(R.id.flContent, fragment).commit(); 
        fragmentManager.executePendingTransactions(); 

Problem ist, MainFragment ist get zerstört und ersetzt ist erfolgreich, aber Problem ist Child von MainFragment wird nie zerstört und Kind Methoden (zerstören, Pause, Stopp ..) nie (ich rief brauche diese Methoden). Sie bleiben im Gedächtnis und wenn man zwischen Activities in App OnResume() kommt, wird die Methode des Kindfragments aufgerufen. Seltsam. Was mache ich hier falsch?

Antwort

0

erstellen Schnittstelle:

interface MainNavigaton { 

    void replaceFragment(); 
} 

auf der Hauptaktivität

class Activity exteds... implements MainNavigation 
     public void replaceFragment() { 
      //Replace fragment here. 
     } 

alle Childs, die diese Tätigkeit verwendet:

private MainNavigation mainNav; 
    public void onAttach(Context context) { 
     mainNav = (MainNavigation) context; 
    } 

das Fragment ersetzen, wo Sie wollen.

action.onClickListner(new View.OnCLickListneer() { 
     mainNav.replaceFragment(); 
    } 
+0

Warum würde dieser Ansatz Kind zu zerstören, aber Anruf ersetzen von Kind nicht? – Sasamannn91

Verwandte Themen