Navigation 바텀 네비게이션 프래그먼트 별로 가리거나 나타내기

James_·2022년 7월 16일

Single Activity Pattern

하나의 액티비티에 여러 뷰들이 있는 패턴으로 사이드 프로젝트를 진행 중이다.
하지만 바텀네비게이션이 필요한 뷰와 필요없는 뷰에 바텀네비게이션을 보여주거나 가려야하는 상황이 발생했다.

해결책

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()
            }
        }
        ...
        
    }
profile
Android 개발자

0개의 댓글