最近项目中Fragment+ViewPager嵌套Fragment,说一说其中的遇到的问题
首先,使用ViewPager当然会用到PagerAdapter,还好google V4包中有FragmnetPagerAdapter。在使用的时候我就想,同一个FragmentManager管理会不会出问题
果然,黑了。还好惊喜的发现getChildFragmentManager(),用了果然好使。
但是,在第二次进来的时候又出现了。
public void onDetach()
{
super.onDetach();
mListener = null;
try
{
Field childFragmentManager = android.support.v4.app.Fragment.class.getDeclaredField("mChildFragmentManager");
childFragmentManager.setAccessible(true);
childFragmentManager.set(this, null);
}
catch (NoSuchFieldException e)
{
throw new RuntimeException(e);
}
catch (IllegalAccessException e)
{
throw new RuntimeException(e);
}
}
释放一下mChildFragmentManager,问题得到解决
下面说说生命周期把
包裹ViewPager的NavigationFragment
子Fragment:FragmentA,FragmentB
首先是NavigationFragment生命周期,就不说了大家都知道
onAttach->onCreate->onCreateView->onActivityCreated->onStart->onResume...-onPause->onStop->onDestroyView->onDestory->onDetach
那么FragmentA,FragmentB生命周期何时开始的呢
其实想一下应该也能明白,不过还是试验了一下,证实了
FragmentA,FragmentB的生命周期是在NavigationaFragment onResume是才开始的