Android替换另一个片段内的片段

时间:2013-07-29 15:45:42

标签: android android-fragments fragment android-lifecycle android-support-library

我在父片段中有2个片段。在OnCreateView()父片段中,我尝试通过replace(int, Fragment)显示这些片段。据我所知,FragmentTransaction#commit()被异步调用。

因此,如果用户快速按下后退按钮 - 系统将销毁父片段(它调用onPause()onStop()onDestroyView()onDestroy())和异步替换任务将失败 - 父视图被销毁并且系统抛出“ IllegalArgumentException :找不到片段MyFragment的视图”。我使用支持库。

那么,我该如何处理这个案子呢? 如果有任何帮助,我将非常感激。

1 个答案:

答案 0 :(得分:1)

我解决了我的问题。对于嵌套片段,应使用getChildFragmentManager()代替getFragmentManager()。如果父片段将被销毁,ChildFragmentManager似乎跟踪父片段的生命周期并取消预定的提交。