我尝试使用popUpTo
作为androidx导航中配置操作的一部分,以确保下一个屏幕上的后退按钮返回到指定的片段ID。
问题是我想导航回的片段被定义为嵌套图的startDestination
,我希望能够在popUpTo
中指定嵌套图的ID,这样我就不必直接链接到子片段的ID,我认为这是一个糟糕的做法,即使不是一个错误。
然而,获得我想要的行为的唯一方法是将popUpTo
设置为嵌套图中定义为startDestination
的ID,指定嵌套图ID将跳过其中定义的片段。
我找不到关于如何将popUpTo
与嵌套图形一起使用的具体指导。有人能提供更多细节吗?
2条答案
按热度按时间deikduxw1#
我希望能够在popUpTo中指定嵌套图的ID,这样就不必直接链接到子片段的ID,我认为这是不好的做法,即使不是错误。
这应该能正常工作。如果这不起作用,那就意味着其他地方出了问题。
在我的例子中,结果是在代码库的其他地方调用了手动操作的
NavController
的backQueue
(.clear()
)。在删除了有问题的代码之后,我可以更新我的
popUpTo
以引用嵌套的图ID,并且如预期的那样清除了backstack。w8biq8rn2#
我在使用
popUpTo
引用嵌套图ID的安全参数时遇到了这个问题。设置.xml
生成的
SettingsFragmentDirections.actionSettingsFragmentToLogIn()
失败,出现上述异常。最后我用ID来导航,比如