Я пытаюсь использовать последнее обновление компонента Nav в моем приложении
где я могу добавить диалог (BottomSheetDialogFragment
) в моем nav graph
nav_version = "2.1.0-alpha05"
Часть кода из моего nav_graph
:
<dialog
android:id="@+id/settingFragment"
android:name="com.andor.navigate.notepad.listing.fragment.SettingFragment"
tools:layout="@layout/fragment_setting">
<action
android:id="@+id/action_settingFragment_to_confirmationFragment"
app:destination="@id/confirmationFragment" />
</dialog>
<dialog
android:id="@+id/confirmationFragment"
android:name="com.andor.navigate.notepad.ConfirmationFragment"
tools:layout="@layout/fragment_confirmation" />
Во фрагменте моей настройки у меня есть кнопка (logout_btn
) для запуска действия: action_settingFragment_to_confirmationFragment
код в OnActivityCreated
фрагмента Сеттинга:
logout_btn.setOnClickListener {
Navigation.findNavController(view!!).navigate(R.id.action_settingFragment_to_confirmationFragment)
}
Когда я нажимаю на кнопку, появляется исключение времени выполнения:
java.lang.IllegalStateException: просмотр
androidx.constraintlayout.widget.ConstraintLayout {550ae09 V.E ......
........ 1,1-719,526} не имеет установленного NavController
на androidx.navigation.Navigation.findNavController (Navigation.java:84)
в com.andor.navigate.notepad.listing.fragment.SettingFragment $ onActivityCreated $ 2.onClick (SettingFragment.kt: 56)
на android.view.View.performClick (View.java:7352)
на android.view.View.performClickInternal (View.java:7318)
на android.view.View.access $ 3200 (View.java:846)
на android.view.View $ PerformClick.run (View.java:27800)
на android.os.Handler.handleCallback (Handler.java:873)
на android.os.Handler.dispatchMessage (Handler.java:99)
на android.os.Looper.loop (Looper.java:214)
на android.app.ActivityThread.main (ActivityThread.java:7045)
в java.lang.reflect.Method.invoke (родной метод)
в com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:493)
на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:965)
Моя цель - открыть диалог из другого диалога, но по какой-то причине в моем диалоге нет (отсутствует) NavController.
Я уже ссылался на источник код