在其他片段中显示的底部导航

2020年1月22日 33点热度 0条评论

我很高兴能最终为此获得帮助。我有一个活动应用程序。片段之一也是导航至其他片段的nav_host(例如nav_host2),以进行底部导航。

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

尽管它为null,如何在不显示底部导航的情况下退出nav_host2

解决方案如下:

使用addOnDestinationChangedListener并相对于destinationId隐藏和显示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的片段