Android 片段后退按钮导航
假设我有3个片段:A,B,C 我从A->B开始 B->C C->B不按后退按钮 B->C不按后退按钮 C->B不按后退按钮 B->C不按后退按钮 现在按下后退按钮,导航应该是C->B->A->finish 换言之,无论导航次数多少,无需按下后退按钮之间Android 片段后退按钮导航,android,android-fragments,Android,Android Fragments,假设我有3个片段:A,B,C 我从A->B开始 B->C C->B不按后退按钮 B->C不按后退按钮 C->B不按后退按钮 B->C不按后退按钮 现在按下后退按钮,导航应该是C->B->A->finish 换言之,无论导航次数多少,无需按下后退按钮之间 B->C和C->B,按后退按钮向后导航的顺序应该是C->B->A假设所有允许的转换都是ABC,您可以在导航C->B时使用FragmentManager.popBackStack方法,并且在导航B->C时始终将转换添加到后堆栈 以下是如何进行转换:
B->C和C->B,按后退按钮向后导航的顺序应该是C->B->A假设所有允许的转换都是ABC,您可以在导航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转换。已经尝试过这一点,但没有达到预期效果。你能分享一个示例代码吗?用示例修改了答案如何进行转换。