【发布时间】:2021-03-10 21:43:45
【问题描述】:
这个问题专门与 androidx.navigation 库有关。
我将我的主图拆分为 2 个图,因为我想要一个带有底部导航且其上方的片段和一个没有。我没有使用<include...,而是将活动添加到第一个图表
<activity
android:id="@+id/Activity2"
android:name="com...Activity2"
android:label="Activity2" />
这一切都很好,但我在第一个图中还有一个启动屏幕,用于检查用户是否经过身份验证并将它们直接导航到第二个图中。对于一个片段,我可以只使用标准的popTo 和popToInclusive 来管理片段回栈,但是我无法弄清楚如何使用两个活动来做到这一点,以便在第二个活动启动时第一个被杀死并且从 backstack 中删除,因此用户无法向后导航。
目前我只是在导航发生的片段中处理它
navController
.navigate(R.id.action_someFragment_to_anotherFragment)
requireActivity().finish()
这是可行的,但它留下了出错的余地,如果可能的话,我想用导航库来处理它。
【问题讨论】:
-
请注意有一个guide specifically around handling login with Navigation。您不需要单独的活动来隐藏某些目的地的底部导航,因为这正是 listening for navigation events 的 API 使用的示例。
-
我不确定该指南是否涉及我面临的问题。我对底部导航事件使用导航没有问题。我可能会添加一堆逻辑来仅使用一个活动来显示/隐藏底部导航,但这感觉很hacky,并且库支持活动之间的导航。
-
它支持退出一个NavController的范围,进入一个完全独立的Activity,是的。正如您所发现的那样,这并没有改变 Activity API 不允许您执行任何您可以在一个 NavController 中执行的操作的方式。
-
如果答案是“你不能”,请随意回答,我会接受。那是我的问题
标签: android androidx android-architecture-navigation android-navigation android-navigation-graph