我想在我的玩具应用程序来使用导航架构组件。
首先,我画了我的“nav_graph.xml”的片段关系。
例如,我画3个片段A,B和C如下面:
A - >乙 - “ç
所以,我有2个动作:
一般情况下,我用下面的代码到移动另一个片段。
所述的片段,
findNavController().navigate(ADirections.actionAToB())
在B中片段
findNavController().navigate(ADirections.actionBToC())
但是你可能知道,还有另一种方式来浏览。片段ID可用于直接导航象下面这样:
findNavController().navigate(R.id.a)
就我而言,我没有为A至C片段的动作。但是,如果我在一个片段使用下面的代码,我可以导航!
findNavController().navigate(R.id.c)
它是一个错误吗?或故意的吗?
这是故意按了documentation for navigate()
:
这支持通过action既导航和直接导航到目的地。
如果您使用Safe Args,那么只有行动的支持。这将确保你只使用你已经在你的图表中指定的连接。