如何隐藏某些片段中的底部导航栏?

Doi*_*nhe 8 kotlin android-jetpack android-bottomappbar android-jetpack-navigation

我有一个带有 navGraph 的活动和一个带有 2 个菜单项的底部导航栏。我的问题是我的底部导航栏到处出现,detailFragment、aboutFragment、signInFragment等等。


        val navController = this.findNavController(R.id.myNavHostFragment)

        val appBarConfiguration = AppBarConfiguration.Builder(
            R.id.contactsFragment,
            R.id.profileFragment
        ).build()

        NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration)

        val navView: BottomNavigationView = findViewById(R.id.nav_view)
        NavigationUI.setupWithNavController(navView, navController)


Run Code Online (Sandbox Code Playgroud)

我如何限制它只显示在我的菜单项上的 2 个片段上?

这就是我解决它的方法

    navController.addOnDestinationChangedListener{ _, nd: NavDestination, _->
        if(nd.id == R.id.contactsFragment || nd.id == R.id.profileFragment){
            navView.visibility = View.VISIBLE
        }else{
            navView.visibility = View.GONE
        }
Run Code Online (Sandbox Code Playgroud)

Art*_*nev 7

对于您应该可见的片段

navView.visibility = View.VISIBLE
Run Code Online (Sandbox Code Playgroud)

不应该被看到的地方

navView.visibility = View.GONE
Run Code Online (Sandbox Code Playgroud)