Android导航库深层链接:如何合成backstack

时间:2018-05-14 22:22:05

标签: android android-architecture-components android-architecture-navigation

使用Android Architecture's Navigation component,我有以下导航图

-> [Home] -> [Articles List] -> [Specific Article]

我还有[Specific Article]的深层链接。打开时,当前导航到[Home]

我想合成一个后台,以便导航回到[Articles List](如果再次导航,则转到[Home])。

这样做的导航方式是什么?

2 个答案:

答案 0 :(得分:5)

根据NavDeepLinkBuilder documentation,Navigation使用合成后端堆栈的目标startDestination。如果您Group destinations into a nested navigation graph,则嵌套图的startDestination和根图的startDestination都会添加到后台堆栈中。这使您能够将[Articles List]作为嵌套图的startDestination,以将其添加到后台堆栈。

然而,强烈建议尽量减少你的合成背堆 - 虽然深度为2或3(如此处)很好,但不建议远远超过等级以避免用户必须反复点击并点按后退按钮以返回启动器的情况。

答案 1 :(得分:2)

documentation意味着我的原始解决方案应该有效。

  

当用户使用深层链接目标中的“后退”按钮时,他们会导航回导航堆栈,就像他们从应用程序的入口点进入您的应用程序一样。

此外,ianhanniballake的回答并未产生预期结果(深层链接片段未打开)。

我在google的跟踪器上针对这两个问题创建了一个问题:https://issuetracker.google.com/issues/79734195