프로그래밍/android

[android] Disable ActionBar show/hide animation

-샤리- 2022. 3. 16. 23:15

Single Activity 구조로 UI 설계를 하기 위해서는 Navigation을 이용하여 모든 화면 단위를 Fragment로 개발을 한다. 혹시 특정 Fragment에서 ActionBar를 숨겨야 할 때가 있다면 supportActionBar의  show(), hide() 함수를 이용하면 된다.  하지만 한가지 거슬리는건 show/hide 될 때 애니메이션이 나오는데, 그게 보기 싫다면 setShowHideAnimationEnabled(false) 를 호출하여 해결할 수 있다.

 

@SuppressLint("RestrictedApi")
override fun onStart() {
    super.onStart()
    
    val supportActionBar = (requireActivity() as AppCompatActivity).supportActionBar
    supportActionBar?.let {
        it.setShowHideAnimationEnabled(false)
        it.hide()
    }
}

@SuppressLint("RestrictedApi")
override fun onStop() {
    super.onStop()

    val supportActionBar = (requireActivity() as AppCompatActivity).supportActionBar
    supportActionBar?.let {
        it.setShowHideAnimationEnabled(false)
        it.show()
    }
}