因此,我已经阅读了www.example.com的大部分https://developer.android.com/guide/navigation/navigation-multi-module#groovy,并且相当了解如何实现nav_graph
等内容。但是我有一个有点复杂的用例,我没有一个具体的想法如何实现。
在我的应用程序中,我将有一个看起来像这样的结构:
Module 1-
|-Module1_Frag1
|-Module1_Frag1_SubFrag1
|-Module1_Frag1_SubSubFrag1
|...
|...
Module 2-
|-Module2_Frag1
|-Module2_ViewPager1
|-Module2_Frag1_SubFrag1
|-Module2_Frag1_SubFrag1_SubFrag1
|-Module2_Frag1_SubFrag2
|-Module1_Frag1_SubFrag2_SubFrag1
我打算使用DrawerLayout
,因此使用了结构。我知道Module 1
很容易做,但我不知道如何处理Module 2
。我应该如何构造nav_graph
?我需要多个NavHostFragment
吗?
1条答案
按热度按时间xurqigkl1#
我从导航抽屉视图活动模板中找到了一些想法。我基本上只是复制了里面的东西,当然除了
nav_graph
。所以基本上,你拥有的每个屏幕都需要在一个片段中,这样你就可以把它放在一个fragment
中,因为这就是整个Navigation
系统的工作方式。正如我上面提到的问题,我打算把
ViewPager
放在Fragment
中,我并不完全知道这是正确的举动,最初实际上是我需要的。我唯一要做的更改是将我在Activity
s中的一些代码转移到Fragment
s中,这样我就可以轻松地将它们添加到nav_graph
上。之后就很简单了我试着有多个nav_graph
s然后一个主nav_graph
,include
d做小的,但似乎不工作。最后我把它们结合在一起。下面是我的最终nav_graph
的样子:最后我意识到有点奇怪的是,似乎我实际上需要有与模块对应的
MenuItem
的id和在nav_graph
中启动“路由”的id相同。Android Studio检测到了这一点,我不得不接受弹出的Dialog
,其中提到了这一事实。下面是我最后的menu
抽屉:就是这样