我在容器Activity上使用此方法来显示BFrag
public void showBFrag()
{
// Start a new FragmentTransaction
FragmentTransaction fragmentTransaction = mFragmentMgr.beginTransaction();
if(mBFrag.isAdded())
{
Log.d(LOG_TAG, "Show() BFrag");
fragmentTransaction.show(mBFrag);
}
else
{
Log.d(LOG_TAG, "Replacing AFrag -> BFrag");
fragmentTransaction.replace(R.id.operation_fragments_frame, mBFrag);
}
// Keep the transaction in the back stack so it will be reversed when backbutton is pressed
fragmentTransaction.addToBackStack(null);
// Commit transaction
fragmentTransaction.commit();
}
Run Code Online (Sandbox Code Playgroud)
我从容器Activity中调用它; 首次:
然后我按下后退按钮:
然后我通过从同一个Activity调用showBFrag()再次前进:
所以:
编辑:这是异常的完整信息.
06-07 12:08:32.730: ERROR/AndroidRuntime(8576): java.lang.IllegalStateException: Fragment …Run Code Online (Sandbox Code Playgroud) android fragment illegalstateexception android-fragments android-3.0-honeycomb
当使用add()方法添加新片段时,我遇到了"意外行为".
我想在FrameLayout上添加一个新片段,但是当我这样做时,前面的片段仍然可见.
这是使用add()方法时的预期结果吗?
这是因为我使用FrameLayout和add()方法只是在FrameLayout上放置一个片段而不影响前一个?
谢谢