带参数的多模块android架构中的导航
由于导航文件位于应用程序模块中,功能模块将无法访问Args文件。有什么解决办法吗 示例:如果我有一个片段,它接受电子邮件和密码,就像这样带参数的多模块android架构中的导航,android,android-architecture-navigation,android-navigation,android-navigation-graph,Android,Android Architecture Navigation,Android Navigation,Android Navigation Graph,由于导航文件位于应用程序模块中,功能模块将无法访问Args文件。有什么解决办法吗 示例:如果我有一个片段,它接受电子邮件和密码,就像这样 <fragment android:id="@+id/navigation_sample" android:name="SampleFragment"> <argument android:name="email"
<fragment
android:id="@+id/navigation_sample"
android:name="SampleFragment">
<argument
android:name="email"
app:argType="string" />
<argument
android:name="password"
app:argType="string" />
</fragment>
但我只能在应用程序模块中使用它,而不能在功能模块中使用它,这取决于您所称的“功能模块”,不过我假设它应该是android库 这是有效的设置:
应用插件:“androidx.navigation.safeargs.kotlin”
和库顶级build.gradle的类路径中的相应设置
)
findNavController().navigate(HelloWorldFragmentDirections.jumpToSampleFragment()oh@acme.com“,”尼姆达“)
可以看出,它是有效的,但在两个位置声明参数会带来一些小麻烦。将导航文件放入库中会出现以下问题。您在mylibraryA中,单击要导航到libraryB的按钮。你会怎么做?因为libraryA不知道libraryB,也不知道应用程序。以完全相同的方式。由于androidlib1和androidlib2需要从一个导航到另一个,您正在添加依赖项,并且您的导航方式与从应用程序到androidlib1的导航方式完全相同。我不明白。我想我的回答回答了你最初的问题——是吗?如果是,请接受/投票等。
findnavController.navigate(R.id.navigation_sample, SampleFragmentArgs(email, password).toBundle)
<fragment
android:id="@+id/HelloWorldFragment"
android:name="..."
android:label="..."
tools:layout="...">
<action
android:id="@+id/jumpToSampleFragment"
app:destination="@+id/myLibraryGraph">
<argument
android:name="email"
app:argType="string" />
<argument
android:name="password"
app:argType="string" />
</action>
</fragment>