假设我有3个片段:A,B,C
现在通过按下后退按钮,导航应该是C-> B-> A - >光洁度
换句话说,不管导航次数(没有按下后退按钮) B-> C和C-> B,通过按下后退按钮的后退导航应按顺序C-> B-> A
答案 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转换。