하나의 액티비티에 여러 뷰들이 있는 패턴으로 사이드 프로젝트를 진행 중이다.
하지만 바텀네비게이션이 필요한 뷰와 필요없는 뷰에 바텀네비게이션을 보여주거나 가려야하는 상황이 발생했다.
mainActivity.kt
먼저 바텀네비게이션을 hide,show를 할 수 있는 함수를 만들어준다.
private fun showBottomNav(){
binding.bottomNavigationView.visibility = View.VISIBLE
}
private fun hideBottomNav(){
binding.bottomNavigationView.visibility = View.GONE
}
그 다음 onCreate에서 navController를 설정할 때 addOnDestinationChangedListener를 추가해준다.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
navController.addOnDestinationChangedListener { _, destination, _ ->
when (destination.id) {
R.id.보여줘야할 fragment id -> showBottomNav()
else -> hideBottomNav()
}
}
...
}