我的屏幕层次结构如下 [活动1]-> [片段1]-> [片段2]-> [片段3]
我有一个深层链接,应该用[fragment3]打开[Activity1]。 上按时,应导航到[fragment2],然后再上按至[fragment1]
如何在不显示[fragment1]和[fragment2]之前先显示[fragment1]和[fragment2]并将其添加到堆栈中的情况下实现此目标,对我来说是一项昂贵的工作。
答案 0 :(得分:0)
您可以使用onBackPressed()
检测到后退按钮,使用getBackStackEntryCount()
检查堆栈中是否已有片段,如果没有片段,请替换{{1 }}使用fragment3
(不向后栈添加fragment2
)。
为fragment3
重复此操作。您可能想要以一种看起来不太像hack的方式来构建导航。基本上,如果您在导航树上的非根片段上,但是后堆栈为空,请手动替换该片段。
如果您不想自己编写解决方案,而是希望使用一些标准库来为您解决,那么Jetpack Navigation是您可能要检查的官方选项。
根据文档:
导航组件支持深层链接并重新创建一个 链接到您的任何目标位置时为您提供逼真的后堆栈 导航图。
https://developer.android.com/guide/navigation/navigation-principles
答案 1 :(得分:0)