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

James_·2022년 7월 16일
0

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개의 댓글