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

时间:2018-08-01 08:33:46

标签: android kotlin android-navigation-drawer android-navigation

我为导航体系结构组件设置了以下代码:

 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()
            }
        }

在这里我发现了两个问题:

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

  2. 在导航抽屉中选择菜单项并将菜单项ID设置为“活动目标”(精确地对“活动目标”进行操作)时,未调用OnNavigatedListener-因此,我不需要传递此操作并注销用户,而要拦截该操作并注销用户导航图中的“活动目标”的默认参数将注销“登录活动目标”中的用户。您知道为什么不为活动目标调用OnNavigatedListener而是仅为片段目标调用吗?为什么没有事件侦听器OnBeginNavigationListener有条件地阻止导航或添加一些副作用?

0 个答案:

没有答案