Я открываю некоторый основной фрагмент FragA
, который затем может открыть другие фрагменты, которые добавляются в стек, но когда я нажимаю назад, я показываю DialogC
, который должен очистить стек и вернуть меня к FragA
, не теряя его состояния, восстановите его из стека, а не создавайте его - чтобы воссоздать его, мне нужно будет передать некоторые аргументы через весь стек. Я пробовал некоторые конфиги с popUpTo
в разных местах, а также использовал findNacController.popUpTo(with/out_aruments)
или findNavController.navigate(R.id.action_dialog_c_to_frag_a)
без destination
, определенного в действии, но pop не может найти действие в стеке, навигация хочет восстановить фрагмент, когда определено назначение, без вас он не может найти поп-действие в стеке (I/NavController: Ignoring popBackStack to destination frag_a as it was not found on the current back stack
)
Это образец моего nav_graph
:
<?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">
<fragment
android:id="@+id/asdf"
android:name="SomeNaviFragment">
<action
android:id="@+id/action_asdf_to_frag_a"
app:destination="@id/frag_A" />
</fragment>
<fragment
android:id="@+id/frag_A"
android:name="FragA">
<argument
android:name="some_id"
app:argType="integer" />
<action
android:id="@+id/action_frag_a_to_frag_b"
app:destination="@id/frag_B" />
</fragment>
<fragment
android:id="@+id/frag_B"
android:name="FragB">
<action
android:id="@+id/action_frag_b_to_dialog_frag_c"
app:destination="@id/DialogFragC"/>
</fragment>
<dialog
android:id="@+id/DialogFragC"
android:name="DialogC">
<action
android:id="@+id/action_dialog_c_to_frag_a"
app:popUpTo="@id/frag_a"
app:popUpToInclusive="true"/>
</dialog>
</navigation>
Короче - я не хочу на go глубже FragA
через некоторые фрагменты, но когда в какой-то момент появляется DialogC
, я хочу вернуться к FragA
, в его начальное состояние. Можно ли достичь этого, не передав аргументы создания для FragA
? Некоторое решение уже опробовано, например: Навигация в обратном направлении с компонентом навигации с его связанными ресурсами, но это никак не помогло.