基本上,我有以下导航图:
我想在到达后立即将导航图中的起点更改为 fragment 2
(为了防止在按下后退按钮时返回到 fragment 1
就像使用初始屏幕一样)。
这是我的代码:
navGraph = navController.getGraph();
navGraph.setStartDestination(R.id.fragment2);
navController.setGraph(navGraph);
但是,显然它不起作用并且在按下后退按钮后它会回到 fragment 1
。
我做错了吗?还有其他解决方案吗?
原文由 Shynline 发布,翻译遵循 CC BY-SA 4.0 许可协议
更新:
当你有这样的导航图时:
并且您想导航到第二个片段并使其成为图表的根,请指定下一个
NavOptions
:并将它们用于导航:
选择:
然后在您的代码上:
旧答案
已弃用: --- 中的动作和相关 API 的
NavOptions
clearTask
属性已被弃用。来源: https ://developer.android.com/jetpack/docs/release-notes
如果您想将根片段更改为
fragment 2
(例如在fragment 2
您将退出应用程序),您应该将下一个属性放入您的action
或destination
:实际上,它看起来像下一个方式:
我已将
app:clearTask="true"
添加到操作中。现在,当您执行从
fragment 1
到fragment 2
的导航时,请使用以下代码: