首页 > 解决方案 > 底部导航显示在其他片段中

问题描述

我很高兴最终能得到这方面的帮助。我有一个单一的活动应用程序。其中一个片段也是其他片段的 nav_host(比如 nav_host2),用于其底部导航。

我想使用深度链接从 nav_host 2 中的 from 片段退出到 nav_host1,但请注意 nav_host2 的底部导航显示在 nav_host1 上,如下图所示。

nav_host1 中的登录片段

如何在不显示底部导航的情况下退出 nav_host2 - 即使它为空

标签: javaandroidandroid-fragmentsandroid-jetpackandroid-jetpack-navigation

解决方案


关于destinationId的使用addOnDestinationChangedListener、隐藏和显示bottomNavigation

private val AUTH_NAV_GRAPH = arrayOf(
    R.id.destination_splash,
    R.id.destination_login,
    R.id.destination_register,
    R.id.destination_forgetpassword
)



val navController = findNavController(this,R.id.nav_host_fragment)// this maybe change
navController.addOnDestinationChangedListener { controller, destination, arguments ->
   if(destination.id in AUTH_NAV_GRAPH) {
       bottomNavigation?.visibility=View.GONE

   } else {
       bottomNavigation?.visibility=View.VISIBLE
   }
}

哪里AUTH_NAV_GRAPH像没有的碎片bottomNavigation


推荐阅读