我的活动看起来像:
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? (我不在乎它是否属于空白活动)
答案 0 :(得分:0)
您需要将fragB
添加到后台堆栈,就像您fragA
一样。否则它只是替换屏幕上的fragA
,但FragmentManager
不知道它应该像对待后面的东西一样对待它。