所以我想说我有以下片段:
片段1 Fragment2 DialogFragment Fragment3 Fragment4
让我说我转到下面的片段,每个fragmetn都被添加到后栈:
Fragment1 -> Fragment2 -> DialogFragment -> Fragment3 -> Fragment4
如果我点击“返回”按钮,通常会转到 Fragment3 ,但会显示 DialogFragment 。
以下是我使用的片段交易:
Fragment1 - > Fragment2
FragmentTransaction ft = mActivity.getSupportFragmentManager().beginTransaction();
ft.replace(R.id.mainContentHolder, new Fragment2(), "Fragment2");
ft.addToBackStack(null);
ft.commit();
Fragment2 - > DialogFragment
FragmentTransaction ft2 = getFragmentManager().beginTransaction();
ft2.setCustomAnimations(R.anim.flipp_in,R.anim.flipp_static);
ft2.add(R.id.mainContentHolder, new DialogFragment(), "DialogFragment");
ft2.addToBackStack(null);
ft2.commit();
ft2.hide(Fragment1.this);
DialogFragment - > Fragment3
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.mainContentHolder, new Fragment3(), "Fragment3");
ft.addToBackStack(null);
ft.commit();
Fragment3 - > Fragment4
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.mainContentHolder, new Fragment4(), "Fragment4");
ft.addToBackStack(null);
ft.commit();
问题是,当我在Fragment4中并单击BACK按钮时,将显示DialogFragment而不是Fragment3。
答案 0 :(得分:0)
在显示DialogFragment时,请使用Fragments中Activity的片段管理器,以避免从后栈中恢复它。