我使用导航抽屉,当我选择一个特定的片段时我会替换当前片段,当我按下后退按钮时,应用程序将退出,有没有办法去上一个片段?
Feedback fragment = new Feedback();
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_home, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
答案 0 :(得分:0)
getSupportFragmentManager().addOnBackStackChangedListener(
new FragmentManager.OnBackStackChangedListener() {
public void onBackStackChanged() {
// Update your UI here.
}
});
也许这会有帮助吗?资料来源:http://developer.android.com/training/implementing-navigation/temporal.html#back-fragments
答案 1 :(得分:0)
是的,您已经将片段事务添加到后台堆栈,但默认情况下,后退按钮只是前一个Activity而不是片段。
您需要覆盖onBackPressed以指定要遍历片段backstack,您可以通过在活动中添加以下内容来完成此操作。你检查你的后台堆栈中是否有任何东西,如果有'弹出'后堆栈,如果后堆栈中没有任何内容,后退按钮就是这样做是正常的:
@Override
public void onBackPressed() {
if(getFragmentManager().getBackStackEntryCount() > 0) {
getSupportManager().popBackStack();
} else {
super.onBackPressed();
}
}