JetPack导航从子模块导航到父图

时间:2020-01-23 14:26:10

标签: android navigation parent-child android-jetpack-navigation

我一直在玩JetPack的导航组件。在大多数情况下,它都是相当不错的,尽管我遇到了一些问题/案例,但是我还没有找到一个合适的解决方案。

假设我们有一个带有模块化架构(打包策略?)的单一活动应用,而我们不想拥有上帝导航模块。我们希望所有模块都拥有自己的nav_graph,并且希望能够在图与图之间来回跳转。

假设我们有这样的依赖关系: app --dependsOn-> library --dependsOn-> detailslibrarydetails都有自己的nav_graphs,它们知道如何在每个模块中进行导航。

现在,如果我们处于app模块中,我们将能够直接导航到details的任何一个目的地,因为app知道两个librarydetails。但是,我们如何从details导航到library的另一个目的地?

我找到的解决方案之一是通过某种Router模块(通常是Interface模块中的God),这不是理想的选择,尤其是当您之所以使用SafeArgs之类的东西是因为,例如,如果您想更改要传递的参数,则需要更改路由器的方法签名等。

我找到的另一种解决方案是add destinations dynamically。 尽管实际上我记得在某处读到,如果您知道类/目标的全限定名称,尽管有Android Studio的警告,您仍然可以导航到该名称,我实际上并不能针对我的情况进行这项工作。

我尝试的第三件事是将popUpTo定义中的inclusive=truenav_graph一起使用来弹出该图,但是我对此并不走运(我正在使用NavDrawer,并想弹出回到顶层位置。

有没有人找到一个好的解决方案?

0 个答案:

没有答案