替换后为什么不能弹出我的片段?

时间:2014-03-12 03:38:00

标签: android android-fragments

我的活动看起来像:

private FragmentA mFragmentA;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_fullscreen);

    FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

    mFragmentA = new FragmentA();
    fragmentTransaction.add(R.id.fragment_container, mFragmentA).addToBackStack("fragA").commit();
}

它只是在启动时添加fragmentA。现在FragmentA有一个按钮可以用新的片段替换自己,FragmentB就像这样:

FragmentTransaction ft = getFragmentManager().beginTransaction();
FragmentB fragB = new FragmentB();
ft.replace(R.id.fragment_container, fragB).commit();

所以我使用按钮将fragA替换为fragB。现在,问题是,无论我做什么(popBackStack,或调用删除),似乎没有任何东西删除FragmentB。我该怎么做才能摆脱FragmentB

澄清:

如果我点击后退键,我该如何摆脱FragmentB? (我不在乎它是否属于空白活动)

1 个答案:

答案 0 :(得分:0)

您需要将fragB添加到后台堆栈,就像您fragA一样。否则它只是替换屏幕上的fragA,但FragmentManager不知道它应该像对待后面的东西一样对待它。

相关问题