我想创建包含在线性布局中的多个片段的堆栈。要将一组片段放入活动中,我使用以下代码(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 -> Back -> f3,f4 -> Back-> f1, f2