Переходить от фрагмента одного графа к фрагменту другого графа с помощью пакета

У меня есть два графика nav_graph1.xml и nav_graph2.xml(в двух разных модулях /lib)

Я хочу перейти от фрагмента 1 к фрагменту 2 с помощью пакетов. Как добиться с помощью компонента навигации?

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>

Заранее спасибо,

1 ответ

Сначала создайте вложенный navGraph, включив второй график в первый.

Затем, если целевой фрагмент не является начальным фрагментом второго графа, вам нужно использовать Uri, как показано здесь в этом ответе: перейдите к фрагменту из другого графа, не являясь начальным местом назначения

Поскольку вы не можете передать пакет с помощью Uri-навигации, для передачи пакета вам понадобится что-то вроде метода для установки и получения пакета для вашей активности, установив пакет из первого фрагмента и получив его в onCreate второго фрагмента.

Другие вопросы по тегам