当平板竖屏时,我的活动中有3个片段。但是当横屏时,我只有其中的2个片段。问题出现在从竖屏切换到横屏时,活动会创建第3个片段。因为该片段在后台堆栈中,所以会收到错误提示无法创建该片段。
我已经发现这个片段是因为它在后台堆栈中而被创建的。
我尝试在onDestroy方法中使用以下代码来删除该片段:
我已经发现这个片段是因为它在后台堆栈中而被创建的。
我尝试在onDestroy方法中使用以下代码来删除该片段:
FragmentTransaction f = fragmentManager.beginTransaction();
f.remove(mf);
f.commit();
然而我收到一个错误,说在 onSaveInstanceState 后就不能再使用此函数。
如何正确地将此片段从后退栈中移除?
更新
我应该补充一下,我遇到问题的片段是来自这个库的 mapFragment。
https://github.com/petedoyle/android-support-v4-googlemaps
我使用它的方式如下:
mf = MapFragment.newInstance(1, true);
ft = fragmentManager.beginTransaction();
ft.replace(R.id.mapContainer, mf);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack("map");
ft.commit();
ft.addToBackStack(“map”)
这一行。 - M.Usman