Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么对话框没有NavController[缺少]?_Android_Kotlin_Androidx_Android Navigation_Android Architecture Navigation - Fatal编程技术网

Android 为什么对话框没有NavController[缺少]?

Android 为什么对话框没有NavController[缺少]?,android,kotlin,androidx,android-navigation,android-architecture-navigation,Android,Kotlin,Androidx,Android Navigation,Android Architecture Navigation,我正在尝试在我的应用程序中使用导航组件的最新更新 我可以在我的导航图中添加对话框(BottomSheetDialogFragment) nav_version = "2.1.0-alpha05" 我的导航图中的部分代码: <dialog android:id="@+id/settingFragment" android:name="com.andor.navigate.notepad.listing.fragment.SettingFragment

我正在尝试在我的应用程序中使用导航组件的最新更新

我可以在我的导航图中添加对话框(
BottomSheetDialogFragment

nav_version = "2.1.0-alpha05"
我的
导航图中的部分代码

    <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" />
单击按钮时,出现运行时异常:

java.lang.IllegalStateException:视图 androidx.constraintlayout.widget.constraintlayout{550ae09 V.E。。。。。。 ……1,1-719526}没有设置导航控制器 位于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


我已经提到了源代码

一个
对话框片段
在一个完全独立的窗口中运行,该窗口与
导航控制器
不在同一视图层次结构中


您应该使用
NavHostFragment.findNavController(this)
(其中
this
是您的
DialogFragment
)或Kotlin扩展名
findNavController()
如果您使用的是
片段ktx
依赖项,该依赖项会沿着片段层次结构查找您的NavController。

我尝试使用上述方法,但遇到应用程序崩溃时,将作为一个单独的问题发布。如果是对话框到对话框操作,则没有问题,而如果是对话框到片段操作,则会发生崩溃
    logout_btn.setOnClickListener {
       Navigation.findNavController(view!!).navigate(R.id.action_settingFragment_to_confirmationFragment)
    }