我想创建包含在线性布局中的多个片段的堆栈。 要将一组片段放入激活,我使用以下代码(R.id.content是LinearLayout):
private void pushToBackStack(final Fragment... fragments) {
final FragmentManager fm = getSupportFragmentManager();
final FragmentTransaction ft = fm.beginTransaction();
for (int i = 0; i < fragments.length; i++) {
if (i == 0) {
ft.replace(R.id.content, fragments[i]);
} else {
ft.add(R.id.content, fragments[i]);
}
}
ft.addToBackStack(null);
ft.commit();
}
当我打电话
pushToBackStack(f1, f2);
pushToBackStack(f3, f4);
pushToBackStack(f5, f6);
屏幕上显示f3,f5和f6,按下返回按钮f2后,显示f3,f4。
预期的行为是f5,f6 - &gt;返回 - &gt; f3,f4 - &gt;背&GT; f1,f2
答案 0 :(得分:1)
您不能以这种方式锁定电话,您需要按commit
或replace
add