如何摧毁片段?

我有一个ActivityActivity有两个Fragment 。 片段A是菜单。 片段B是细节。

我尝试在片段B中创build其他片段C,因此,活动中有3个片段。 我尝试将片段Breplace为片段D.

我猜片段B和C已经死了。 但这些碎片还活着。 只是片段是onDestroyView()状态。 我想onDestroy()onDetach()

我该怎么做Fragments.onDestroy()onDetach() ? 我不能销毁或更改Activity

如果您不手动删除这些碎片,它们仍然附加到该活动。 你的活动不会被破坏,所以这些碎片也是如此。 要删除(如此销毁)这些碎片,您可以调用:

 fragmentTransaction.remove(yourfragment).commit() 

希望对你有所帮助

试试这个

 @Override public void destroyItem(ViewGroup container, int position, Object object) { // TODO Auto-generated method stub FragmentManager manager = ((Fragment) object).getFragmentManager(); FragmentTransaction trans = manager.beginTransaction(); trans.remove((Fragment) object); trans.commit(); super.destroyItem(container, position, object); } 

如果你在片段本身,你需要调用它。 yourFragment需要被调用的片段。input代码:

。getFragmentManager()的BeginTransaction()除去(yourFragment).commitAllowingStateLoss();

或者如果你使用的是supportLib,那么你需要调用:

。getSupportFragmentManager()的BeginTransaction()除去(yourFragment).commitAllowingStateLoss();

 getActivity().getSupportFragmentManager().popBackStack();