获取错误:片段已添加?

时间:2013-03-28 06:44:13

标签: android eclipse fragment

为什么这会返回“已添加片段”错误并导致应用崩溃?

android.support.v4.app.FragmentManager fm = getSupportFragmentManager();

    android.support.v4.app.FragmentTransaction ft = fm.beginTransaction();



    ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right);
    ft.replace(R.id.fragment_container, tempmainfrag);
    ft.commit();
    for(int i = 0; i < fm.getBackStackEntryCount(); i++)
    {
        fm.popBackStack();
    }

我猜这是因为for循环没有它,但是我需要清除后面的堆栈,我该如何正确地做到这一点?

1 个答案:

答案 0 :(得分:1)

使用mapfragments时遇到了同样的错误,这就是最终为我解决的问题:

@Override
public void onDestroyView() {
    super.onDestroyView();

    SupportMapFragment f = (SupportMapFragment) getFragmentManager().findFragmentById(R.id.current_fragment);
    if (f != null)
        getFragmentManager().beginTransaction().remove(f).commit();
}

希望它有所帮助。