导航组件,弹回到另一个模块目的地
我有一个多模块项目,该项目使用导航组件在片段之间导航。这意味着要到达另一个模块,我必须使用findnavcontroller()。导航(NavDeeplinkRinkRequest,navoptions)
启动DeepLink。当需要登录应用程序时,我需要在另一个模块中不可见的另一个模块中的目的地弹出后堆栈。我该如何实现?
I have a multi module project that uses Navigation Component to navigate between Fragments. This means that in order to get to another module, I have to launch a DeepLink using findNavController().navigate(NavDeepLinkRequest, NavOptions)
. When it comes time to log out of the application, I need to pop the back stack inclusive to a Destination in another module that is not visible to that module. How do I achieve this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我遇到了完全相同的问题,我相信谷歌默认情况下不支持使用导航组件(这很遗憾)。然而,我设法使用老朋友
getIdentifier
以一种有点hacky的方式做到了这一点(但它有效)。在您的
Fragment
中,您可能有这样的导航请求:然后使用
getIdentifier()
获取您需要弹出的资源 id(可以是Fragment
id 或在我的情况下nav graph
id):像这样定义
navigationOptions
:并使用导航
希望这会有所帮助!
I had exactly the same issue and I believe Google doesn't support it by default using Navigation Component (which is sad). However I managed to do it in a bit hacky way (but it works) using old friend
getIdentifier
.In your
Fragment
you may have a navigation request like this:Then get the resource id you need to pop-up to using
getIdentifier()
(it can beFragment
id or in my casenav graph
id):Define
navigationOptions
like this:And navigate using
Hope this will help!