Я использую библиотеку навигации (2.2.0-rc04), и у меня есть два DialogFragments. Первый - это A, открытый с MainFragment
. Второй - B, и это просто диалоговое окно для подтверждения, открытое A. Вот общая структура связанной навигации XML:
<navigation app:startDestination="@id/mainFragment" ...>
<fragment android:id="@+id/mainFragment" ...>
<action
android:id="@+id/action_mainFragment_to_ADialog"
app:destination="@id/ADialog" />
</fragment>
<dialog
android:id="@+id/ADialog"
android:name="com...ADialog"
android:label="ADialog"
tools:layout="@layout/dialog_a">
<action
android:id="@+id/action_aDialog_to_bDialog"
app:destination="@id/BDialog" />
</dialog>
<dialog
android:id="@+id/BDialog"
android:name="com...BDialog"
android:label="BDialog" />
<action
android:id="@+id/action_global_login"
app:destination="@id/nav_graph_login"
app:popUpTo="@id/mainFragment"
app:popUpToInclusive="true"/>
</navigation>
Я хочу, чтобы в экран за один раз. Поэтому, когда пользователь нажимает кнопку от A до go от B, я вызываю dismiss()
на A прямо перед тем, как я вызываю navigate(action_aDialog_to_bDialog)
, чтобы вызвать B. B появляется, но когда я пытаюсь вызвать navigate(action_global_login)
из B, Я получаю следующую ошибку:
IllegalStateException: Fragment B not associated with a fragment manager.
Есть идеи, что это за проблема и как ее решить?