2017-09-07 9 views
0

ich zwischen diesen beiden Kombinationen mittels tungetActivity(). GetFragmentManager() v/s fragment.getFragmentManager()

getActivity().getFragmentManager() 

und

fragment.getFragmentManager() 

wirklich verwirrt, als ob wir die innere Umsetzung sehen die Activity.java hat

public FragmentManager getFragmentManager() { 
     return mFragments.getFragmentManager(); 
    } 

während Fragment.java

hat
final public FragmentManager getFragmentManager() { 
     return mFragmentManager; 
    } 

heißt das, wir haben immer einen anderen FragmentManager oder sonst?

+0

Den Code lesen Kommentare? https://github.com/android/platform_frameworks_support/blob/master/fragment/java/android/support/v4/app/Fragment.java#L743-L753 –

Antwort

1

Ein Fragment ist ein Teil der Benutzeroberfläche oder des Verhaltens einer Anwendung, die in eine Aktivität eingefügt werden kann. Die Interaktion mit Fragmenten erfolgt über den FragmentManager, der über Activity.getFragmentManager() und Fragment.getFragmentManager() erhalten werden kann.

getActivity().getFragmentManager()

Return die FragmentManager mit Fragmenten für die Interaktion mit dieser Aktivität assoziiert .

fragment.getFragmentManager()

Return die FragmentManager für die Interaktion mit Fragmenten assoziiert mit dieser Aktivität des Fragments. Beachten Sie, dass dies vor get_Activity() nicht Null ist, während der Zeit, in der das Fragment in einer FragmentTransaction platziert wird, bis es festgeschrieben und an seine Aktivität angefügt wurde.

Wenn dieses Fragment ein Kind von einem anderen Fragment ist, kehrte der FragmentManager hier wird die getChildFragmentManager() der Eltern sein.

Verwandte Themen