导航架构组件深度链接后返回导航

问题描述 投票:2回答:2

当我从深层链接打开应用程序(用户点击URL)并按回按钮时,我希望用户导航到导航图中的前一个片段,但它只是退出应用程序。

文档说,后退导航的工作方式与用户自然进入该界面的方式相同。

我可以在导航图中以某种方式指定所需的后台堆叠吗?或者可以在深层链接后自动形成backstack?对于旧版本的库,我发现在按下之后它应该导航到我的导航图的根,但这不会发生。

我正在使用Android架构组件(版本1.0.0-beta01)的导航库。

android android-architecture-components android-architecture-navigation
2个回答
0
投票

根据Google的指南,您提到的行为是正确的行为。

关于https://developer.android.com/training/design-navigation/ancestral-temporal的图10


0
投票

正如描述here后退按钮应该返回到上一个片段,您可以在Java中手动设置它,如下所示:button.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.next_fragment, null));

在Kotlin那样:button.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.next_fragment, null))

Android系统维护一个包含最后访问目的地的后栈。当用户打开应用程序时,应用程序的第一个目标位于堆栈中。每次调用navigate()方法都会将另一个目标放在堆栈顶部。相反,按向上或向后按钮分别调用NavController.navigateUp()和NavController.popBackStack()方法,以从堆栈中弹出顶部目标。

确保您在托管片段活动中使用NavHostFragment而不是<fragment>

© www.soinside.com 2019 - 2024. All rights reserved.