Android 导航,我可以移动任何未连接的片段
Android Navigation, I can move any fragment which is not connected
我正在尝试在我的玩具应用程序中使用导航架构组件。
首先我在"nav_graph.xml".
中画出了片段关系
比如我画了A、B、C 3个片段如下:
A -> B -> C
所以我有 2 个动作:
- action_a_to_b
- action_b_to_c
一般来说,我使用下面的代码来移动另一个片段。
在A片段中,
findNavController().navigate(ADirections.actionAToB())
在B片段中,
findNavController().navigate(ADirections.actionBToC())
但您可能知道,还有另一种导航方式。
片段 ID 可用于直接导航,如下所示:
findNavController().navigate(R.id.a)
就我而言,我没有 A 到 C 片段的操作。
但是如果我在我的 A 片段中使用下面的代码,我就可以导航了!
findNavController().navigate(R.id.c)
这是一个错误吗?还是故意的?
根据 documentation for navigate()
这是故意的:
This supports both navigating via an action and directly navigating to a destination.
如果您使用的是 Safe Args,则仅支持操作。这确保您仅使用您在图表中指定的连接。
我正在尝试在我的玩具应用程序中使用导航架构组件。
首先我在"nav_graph.xml".
中画出了片段关系比如我画了A、B、C 3个片段如下:
A -> B -> C
所以我有 2 个动作:
- action_a_to_b
- action_b_to_c
一般来说,我使用下面的代码来移动另一个片段。
在A片段中,
findNavController().navigate(ADirections.actionAToB())
在B片段中,
findNavController().navigate(ADirections.actionBToC())
但您可能知道,还有另一种导航方式。 片段 ID 可用于直接导航,如下所示:
findNavController().navigate(R.id.a)
就我而言,我没有 A 到 C 片段的操作。 但是如果我在我的 A 片段中使用下面的代码,我就可以导航了!
findNavController().navigate(R.id.c)
这是一个错误吗?还是故意的?
根据 documentation for navigate()
这是故意的:
This supports both navigating via an action and directly navigating to a destination.
如果您使用的是 Safe Args,则仅支持操作。这确保您仅使用您在图表中指定的连接。