我想实现反向行为,这样当你向后按下Backstack为空时它会提示确认弹出窗口,否则它会弹出堆栈中的下一个片段 .
我正在尝试获得后台筹码,但我总是从两个片段管理器得到0
getSupportFragmentManager().getBackStackEntryCount();
getFragmentManager().getBackStackEntryCount();
我想它应该工作,因为我检查片段导航器的谷歌代码,它通过规范片段事务添加到backstack:
FragmentNavigator.java:
if (initialNavigation || isClearTask) {
backStackEffect = BACK_STACK_DESTINATION_ADDED;
} else if (isSingleTopReplacement) {
// Single Top means we only want one instance on the back stack
if (mBackStack.size() > 1) {
// If the Fragment to be replaced is on the FragmentManager's
// back stack, a simple replace() isn't enough so we
// remove it from the back stack and put our replacement
// on the back stack in its place
mFragmentManager.popBackStack();
ft.addToBackStack(Integer.toString(destId));
mIsPendingBackStackOperation = true;
}
backStackEffect = BACK_STACK_UNCHANGED;
} else {
ft.addToBackStack(Integer.toString(destId));
mIsPendingBackStackOperation = true;
backStackEffect = BACK_STACK_DESTINATION_ADDED;
}
ft.setReorderingAllowed(true);
ft.commit();
我没有找到任何API来通过NavController或Navigator检索此信息 .
谢谢
1 回答
我明白答案很晚 . 但可能会帮助别人 .