Переходить от фрагмента одного графа к фрагменту другого графа с помощью пакета
У меня есть два графика 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 второго фрагмента.