使用 navigation 导航到一个独立的 fragment

Navigate to a independent fragment with navigation

我正在开发一个包含后台服务的应用程序,它可能会向用户发送错误或请求操作(在应用程序中,因此没有通知)。为此,我在对话框变得复杂后设计了一些片段。有些使用数据绑定。但是我不知道应该如何将它们正确地集成到导航中。

创建从图中任意片段到目标片段的动作感觉不对。因此,我一直在寻找一种方法来导航到甚至可能不包含在 NavGaph 中的片段。深 link 似乎不对,因为这会打开通往世界的那个片段的通道,这不是我的愿望。

换句话说,我有片段A、B、C和D。 A、B 和 C 在 NavigationGraph 中。 D 在 NavigationGraph 之外/不包含在 NavigationGraph 中。 目标是尽可能干净地从 A、B 和 C 导航到 D。 不可能在所描述的 NavigationGraph 或单独的片段中将任何片段(A、B、C)的动作添加到 D,因为这会导致设置大约 30 个额外的动作。 片段 D 也不应通过 deeplink 或类似方式从应用程序外部访问。

Global actions 适用于这种情况:您有一个目的地 (Fragment D),可以从所有其他目的地 (Fragments A 到 C) 到达。

Fragment D 的目的地和相应的全局操作可以添加到与其他片段目的地相同的导航图中,并且全局操作只能在您的应用程序内部使用。