片段后退按钮导航

时间:2014-04-24 07:09:53

标签: android android-fragments

假设我有3个片段:A,B,C

  1. 我从A - >乙
  2. B - > ç
  3. C - > B(不按后退按钮)
  4. B - > C(不按后退按钮)
  5. C - > B(不按后退按钮)
  6. B - > C(不按后退按钮)
  7. 现在通过按下后退按钮,导航应该是C-> B-> A - >光洁度

    换句话说,不管导航次数(没有按下后退按钮) B-> C和C-> B,通过按下后退按钮的后退导航应按顺序C-> B-> A

1 个答案:

答案 0 :(得分:0)

假设所有允许的转换都是A< - > B - C,您可以在导航C-> B时使用FragmentManager.popBackStack()方法,并且在导航B时始终将转换添加到后栈 - > C。

以下是转换的方法:

public void transitionFromAToB() {
    getSupportFragmentManager().beginTransaction()
            .replace(R.id.fragment_container, new FragmentB())
            .addToBackStack(null)
            .commit();
}

public void transitionFromBToC() {
    getSupportFragmentManager().beginTransaction()
            .replace(R.id.fragment_container, new FragmentC())
            .addToBackStack(null)
            .commit();

}

public void tansitionFromCToB() {
    getSupportFragmentManager().popBackStack();
}

public void transitionFromBToA() {
    getSupportFragmentManager().popBackStack();
}

因此,在转换C-> B时,您实际上并没有进行新的转换,实际上只是在逆转B-> C转换。