3

我有两个图表 nav_graph1.xml 和 nav_graph2.xml(在两个不同的模块/库中)

我想使用 bundles从 fragment1 导航到 fragment2 。如何使用导航组件实现?

nav_graph1.xml

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/nav_graph1"
    app:startDestination="@id/fragment1">
    <fragment
        android:id="@+id/C1_fragment"
        android:name="com.example.multiplenavigation.C_nav_graph.C1 "
        android:label="C1"
        tools:layout="@layout/fragment_C1">
        <action
            android:id="@+id/C1_to_C2_fragment"
            app:destination="@id/C2_fragment" />
    </fragment>
</navigation>

nav_graph2.xml

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/nav_graph1"
    app:startDestination="@id/fragment2">
    <fragment
        android:id="@+id/fragment2"
        android:name="com.example.multiplenavigation.C_nav_graph.C1 "
        android:label="C2"
        tools:layout="@layout/fragment_C2">
    </fragment>
</navigation>

在此处输入图像描述

提前致谢,

4

1 回答 1

0

首先, 通过在第一个图中包含第二个图来创建一个嵌套的 navGraph 。

然后,如果您的目标片段不是第二个图的起始片段,您需要使用 Uri,如下所示在此答案中:从另一个图中导航到片段而不是起始目的地

由于您无法使用 Uri 导航传递捆绑包,因此要传递捆绑包,您需要一种方法来设置和获取活动中的捆绑包,从第一个片段设置捆绑包并将其放入第二个片段的 onCreate 中。

于 2020-07-06T08:24:43.237 回答