我在我的 android 应用程序中使用具有多个活动的导航库,我想知道,是否有办法在多个导航图之间共享一些操作(打开带有预定义参数的某些页面)。它是这样的:
- 存在ActivityB在其导航操作中需要参数a、b、c 。
- ActivityA有NavGraphA打开ActivityB。
- ActivityC有NavGraphC,它也打开ActivityB。
现在我想使用在NavGraphA和NavGraphC中打开ActivityB的操作,最好不要在两个图中复制活动、它的参数和操作本身(例如某种包含?)。
我知道可以在两个图中将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 复制它。
也许有一种方法可以以某种方式在多个图表中包含共享的全局动作?