【发布时间】:2019-10-16 09:41:32
【问题描述】:
我在我的 android 应用程序中使用具有多个活动的导航库,我想知道,是否有一种方法可以在多个导航图之间共享一些操作(打开带有预定义参数的某些页面)。 它是这样的:
- 存在 ActivityB,在其导航操作中需要参数 a、b、c。
- ActivityA 具有打开 ActivityB 的 NavGraphA。
- 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 复制它。
也许有办法以某种方式在多个图表中包含共享的全局操作?
【问题讨论】:
标签: android navigation android-jetpack-navigation