如何在碎片中正確使用碎片?正確使用子子片段(子)FragmentManager
我(簡體)使用情況下,我有一個佈局片段的活性,這種片段theirself包含一個子片段......所有片段手動添加到他們的父母......
----------------------------------------------------------
- Activity -
- -
- -
- --------------------------------------- -
- - Fragment - -
- - - -
- - ----------------- - -
- - - SubFragment - - -
- - - - - -
- - - - - -
- - ----------------- - -
- --------------------------------------- -
- -
----------------------------------------------------------
現在,在我的活動的onCreate
我以下:
if (savedInstanceState == null)
{
// I create the fragment
mMainFragment = new MainFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_main, mMainFragment);
transaction.commit();
}
else
{
// I retrieve the fragment
mMainFragment = (BaseFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_main);
}
而在我的片段onCreate
我獲得/創建我的小碎片:
mSubFragment = getChildFragmentManager().findFragmentByTag(SubFragment.class.getName());
if (mSubFragment == null)
{
mSubFragment = new SubFragment();
getChildFragmentManager().beginTransaction().add(R.id.fragment_sub, mSubFragment, SubFragment.class.getName()).commit();
}
問題
屏幕旋轉後,我的小碎片被添加兩次......如果我用的是活動的FragmentManager
然後它......但爲什麼它不與ChildFragmentManager
工作?當然,片段是一個新的片段,但活動也是一個新的片段,爲什麼它與活動的FragmentManager
一起工作,但與父片段不一致?
在一個片段中,我應該使用片段ChildFragmentManager
,不應該嗎?
不一樣的問題,孩子的片段添加到
Fragment
,但對於其他人來到這裏,請參閱相關[在Android中嵌套片段之間的通信](http://stackoverflow.com/questions/39491655/communication-between-nested-fragments-in-andro ID/39563977#39563977)。 – Suragch