2017-09-07 7 views
0

私たちは、内部の実装を見ているかのよう私は本当にgetActivity()。getFragmentManager()のV/sのfragment.getFragmentManager()

getActivity().getFragmentManager() 

fragment.getFragmentManager() 

を行うことにより、これらの二つの組み合わせの間で混乱Fragment.javaは

を有しているActivity.javaは

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

あり

final public FragmentManager getFragmentManager() { 
     return mFragmentManager; 
    } 

私たちは常に異なるFragmentManagerを持っているのでしょうか?

+0

コードのコメントを読む? https://github.com/android/platform_frameworks_support/blob/master/fragment/java/android/support/v4/app/Fragment.java#L743-L753 –

答えて

1

フラグメントは、アクティビティに配置できるアプリケーションのユーザーインターフェイスまたは動作の一部です。フラグメントとの相互作用は、Activity.getFragmentManager()Fragment.getFragmentManager()で取得できるFragmentManagerを通じて実行されます。 getActivity().getFragmentManager()

この活動に に関連フラグメントと相互作用するための戻りFragmentManager

。このフラグメントの活動に に関連フラグメントと相互作用するための戻りFragmentManager

fragment.getFragmentManager()

。フラグメント がFragmentTransactionに置かれてコミットされ、そのアクティビティに が添付されるまでの間に、これはgetActivity()の少し前にNULLでないNULL になることに注意してください。

この断片は他の断片の子である場合は、FragmentManager はここで返さ親のgetChildFragmentManager()になります。

関連する問題