Android 如何在多个导航图之间共享常见操作(或活动)?
我将android应用程序中的导航库用于多个活动,我想知道是否有一种方法可以在多个导航图之间共享某些操作(使用预定义参数打开特定页面)。 事情是这样的:Android 如何在多个导航图之间共享常见操作(或活动)?,android,navigation,android-jetpack-navigation,Android,Navigation,Android Jetpack Navigation,我将android应用程序中的导航库用于多个活动,我想知道是否有一种方法可以在多个导航图之间共享某些操作(使用预定义参数打开特定页面)。 事情是这样的: 存在需要在其导航操作中使用参数a、b、c的ActivityB ActivityA具有打开ActivityB的NavGraphA ActivityC具有NavGraphC,它也会打开ActivityB 现在我想使用在NavGraphA和NavGraphC中打开ActivityB的操作,最好不要在两个图中重复活动、其参数和操作本身(例如,某种包含?
<fragment
android:id="@+id/xyFragment"
android:name="x.y.fragment"
android:label="xyFragment" >
<action
android:id="@+id/action_xyFragment_to_ActivityB"
app:destination="@id/activityB" />
</fragment>
<activity
android:id="@+id/activityB"
android:name="x.y.ActivityB"
android:label="ActivityB" >
<argument
android:name="a"
app:argType="argument.A" />
<argument
android:name="b"
app:argType="argument.B" />
<argument
android:name="c"
app:argType="argument.C" />
</activity>
正如您所看到的,我可以将这些参数封装到一个类中,这将减少参数的数量,但原始问题仍然存在
或者我可以用不同的ID复制它
也许有一种方法可以在多个图形中包含共享的全局操作?您可以使用全局操作来创建多个目标可以使用的公共操作 在NavGraphA或NavGraphC中添加ActivityB,然后在导航设计视图上右键单击->添加操作->全局,将其设置为全局 因此ActivityA和ActivityC都可以通过使用it id导航到ActivityB:例如R.id.action\u global\u ActivityB 有关更多详细信息,请参阅