片段在后面按钮按android跳过片段

时间:2015-02-06 11:17:14

标签: android android-fragments

我有4个碎片A B C D. 如何使用后台堆栈以及如何设置片段? 我想只将片段A添加到堆栈中,当我按下B C或D的后退按钮时,我想设置片段A. 我不想在后面的堆栈中使用B C和D

2 个答案:

答案 0 :(得分:0)

通常在您的FragmentTransaction中,您应该致电addToBackstack(null)将其添加到Backstack中。

backstack实际上是一个堆栈,当用户按下时会弹出Fragment。

所以如果A放B,B放C和C放D;你不能直接从D到A.

您可以覆盖onBackPressed()并自行控制行为,而无需使用Fragment的内置后端堆栈支持。

答案 1 :(得分:0)

您可以使用popbackstack来清除历史记录中的任何片段,并将广告反馈到像这样的反向堆栈片段:

//create an instance of the fragment you want o be avilable on back press
FragmentA fragmentA = new FragmentA();

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

//Create instance of the fragment that is going to be loaded
FragmentD fragmentD = new FragmentD();

//Replace the current fragment with Fragment D 
fragmentTransaction.replace(R.id.frame_container, fragmentD);

//Clear frgament history and include the fragment wanted on back press
fragmentManager.popBackStack();

fragmentTransaction.addToBackStack(fragmentA.getclass().getName());

fragmentTransaction.commit();