5
我把这种方法从AFrag往前走BFrag:片段的行为:FragmentTransaction ::代替()和反向堆栈中操作
showFragment()
{
FragmentTransaction fragmentTransaction = mFragmentMgr.beginTransaction();
// Add fragment to the container ContentView
fragmentTransaction.replace(R.id.operation_fragments_frame, mBFrag, mBFrag.getTag());
// Add FADE effect
fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
// Keep the transaction in the back stack so it will be reversed when backbutton is pressed
fragmentTransaction.addToBackStack(null);
// Commit transaction
fragmentTransaction.commit();
}
它显示了一个新的片段(BFrag),取代以前的一个(AFrag )并保存有关交易的信息,因此可以在按下后退按钮时自动撤销/撤销。
当后退按钮被按下时,一切都看起来很好,前一个片段显示(AFrag)。但是当我再次前进时(AFrag - > BFrag),我得到了“碎片已经添加的异常”。
未反转/撤销操作是否删除新片段(BFrag)?这是预期的行为?
这是因为在此之后,我决定成立一个检查的怪异:
if(mBFrag.isAdded())
{
fragmentTransaction.show(mBFrag);
}
else
{
fragmentTransaction.replace(R.id.operation_fragments_frame, mBFrag, mBFrag.getTag());
}
和剧照,它进入else语句...我得到的异常。
请问我在做什么错误?
Thx。
没错,答案和你所谈论的其他职位是我哥们的xD http://stackoverflow.com/questions/6250580/fragment-already-added-illegalstateexception THX反正 – 2011-06-10 08:13:11
我很高兴听到这一点,我只是想知道错误与我的代码一如既往。谢谢你澄清。 – 2017-08-02 17:02:31