首页 > 解决方案 > 登录 - 导航架构组件

问题描述

我使用 android 导航架构组件实现了对我的 LoginFragment 的条件导航。我现在面临的问题是,我想隐藏工具栏上的向上按钮,并在用户未登录时禁用任何应用内导航。

我希望能够使用单一活动方法来实现这一点,其中 Activity 设置应用内导航 UI 和 navController 就像在 android sunflower 演示中一样,导航目的地是片段。

我实现了这里描述的条件导航: Navigation Architecture Component - Login screen

如何使用导航架构组件正确实现在登录屏幕上隐藏导航和向上按钮?

标签: androidandroid-architecture-componentsandroid-navigationviewup-buttonandroid-architecture-navigation

解决方案


我不知道隐藏导航的确切含义,但我假设您的意思是隐藏抽屉布局。要隐藏向上按钮并锁定抽屉,请将以下内容添加到 MainActivity 的 onCreate。我正在使用科特林。

myNavController.addOnDestinationChangedListener { _, destination ->
    if (destination.id == R.id.loginFragment) {
        myDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
        myToolbar.setVisibility(View.GONE)
    } else {
        myDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED)
        myToolbar.setVisibility(View.VISIBLE)
    }

要使向上按钮消失,请使用myToolbar.setNavigationIcon(null)并使其返回使用myToolbar.setNavigationIcon(R.id.my_icon)


推荐阅读