Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.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 导航体系结构组件-活动目标和OnNavigatedListener_Android_Kotlin_Navigation Drawer_Android Navigation - Fatal编程技术网

Android 导航体系结构组件-活动目标和OnNavigatedListener

Android 导航体系结构组件-活动目标和OnNavigatedListener,android,kotlin,navigation-drawer,android-navigation,Android,Kotlin,Navigation Drawer,Android Navigation,我为导航架构组件设置了这样的代码: val navController = findNavController(R.id.main_nav_host_fragment) nav_view.setupWithNavController(navController) bottom_navigation.setupWithNavController(navController) //nav_view.setNavigationItemSelectedL

我为导航架构组件设置了这样的代码:

 val navController = findNavController(R.id.main_nav_host_fragment)
        nav_view.setupWithNavController(navController)
        bottom_navigation.setupWithNavController(navController)
        //nav_view.setNavigationItemSelectedListener(this)

        navController.addOnNavigatedListener { controller, destination ->
            if(destination.id == R.id.loginActivity) {
                Toast.makeText(context, "Log Out navigation destination", Toast.LENGTH_LONG).show()
            }
        }
我在这里发现了两个问题:

  • 在导航抽屉中选择未出现在底部导航视图中的菜单项会导致选择底部导航视图中的第一个菜单项。这似乎不正确(此处不应选择任何项目)

  • 在导航抽屉中选择菜单项id设置为“活动目的地”(确切地说是“操作到活动目的地”)的菜单项时,不会调用OnNavigatedListener,因此,与其截取此操作并注销用户,我需要在Nav图中将愚蠢的默认参数传递给Activity Destination,以注销登录Activity Destination的用户。您知道为什么OnNavigatedListener不为活动目的地调用,而只为片段目的地调用吗?为什么没有事件监听器OnBeginNavigationListener来有条件地阻止导航或添加一些副作用