【发布时间】:2011-09-07 22:03:52
【问题描述】:
我调用这个方法从 AFrag 前进到 BFrag:
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 语句......我得到了例外。
请了解我做错了什么?
谢谢。
【问题讨论】:
标签: android android-3.0-honeycomb android-fragments fragment