我在父片段中有2个片段。在OnCreateView()
父片段中,我尝试通过replace(int, Fragment)
显示这些片段。据我所知,FragmentTransaction#commit()
被异步调用。
因此,如果用户快速按下后退按钮 - 系统将销毁父片段(它调用onPause()
,onStop()
,onDestroyView()
,onDestroy()
)和异步替换任务将失败 - 父视图被销毁并且系统抛出“ IllegalArgumentException :找不到片段MyFragment的视图”。我使用支持库。
那么,我该如何处理这个案子呢? 如果有任何帮助,我将非常感激。
答案 0 :(得分:1)
我解决了我的问题。对于嵌套片段,应使用getChildFragmentManager()
代替getFragmentManager()
。如果父片段将被销毁,ChildFragmentManager
似乎跟踪父片段的生命周期并取消预定的提交。