我希望你们都过得很好。
我有一个关于导航图的问题。你可以在下面的图像中看到结构;
x1c 0d1x我们有两个不同的导航图; navigation_A
和navigation_B
中的一个或多个。
我需要从嵌套图(navigation_B
)中的片段导航到Fragment Y
和Fragment Z
。
问题是;
- 如果我将
<include>
用于navigation_B
,则不能将其用作NavHost
。 - 如果我使用不同的导航图,并将其添加为如上所述的嵌套图,我不能将导航目标用于
Fragment Y
或Fragment Z
。
我需要使用navigation_B
作为NavHost
,我还需要能够导航到Fragment Y
和Fragment Z
。我如何才能实现这一点?
谢谢你,谢谢你
2条答案
按热度按时间js81xvg61#
您的导航图结构破坏了建议的导航模式!
但为了你的需要,我有个变通的办法。
方法1:首先,FragmentY和FragmentZ需要有自己的深层链接。
然后,在navigation_B中的一个片段内,我们将其命名为FragmentB
不过,您可以将字符串
any-app://internal_navigation_frag_y
和any-app://internal_navigation_frag_z
存储在string.xml文件中。看看这个:https://developer.android.com/guide/navigation/navigation-navigate#uri
方法2:在嵌套图navigation_B中,定义2个指向fragmentY和fragmentZ的全局操作。
请检查:https://developer.android.com/guide/navigation/navigation-global-action
nfeuvbwi2#
当你使用嵌套导航图时,内部图不应该知道外部图的任何信息。在这种情况下,graph_B不应该知道FragmentY或FragmentZ的存在。你应该做的是把graph_B的结果传递给启动它的人。然后在这个时候决定是去FragmentY还是去FragmentZ。