프로그래밍과 잡담

[안드로이드] 상태표시줄과 네비게이션바 없애는 법 본문

프로그래밍/안드로이드

[안드로이드] 상태표시줄과 네비게이션바 없애는 법

크레온 2024. 6. 16. 17:33

 

 

 

안드로이드 앱에서 위의 빨간색으로 친 부분을 제거 하기 위해서는 

 

예전에는 아래와 같은 코드를 썼다.

 

        window.decorView.apply{
            systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN
        }

 

근데 이거 쓰면 android lint 라는 거지같은거에서  deprecated 가 되었다 한다.

 

구글 이것들의 문제는 해결법을 알려주던가 해야하는데,  크게 도움이 안되는 개소리가 써있다는게 문제지. 

그 개소리가 뭐냐면 최신 API 의 기능을 쓰라는 이야기임. 근데 그거 쓰면 하위 버전을 쓰는 폰들은 이 앱을 못쓰게 된다는거지.  아주 개같이 만들어놧어. 

그래서  인터넷에서 찾아보니 아래와 같이 하면 된다.

 

WindowCompat.setDecorFitsSystemWindows(window, false)
WindowInsetsControllerCompat(window, window.decorView).let {
    it.hide(WindowInsetsCompat.Type.statusBars())
    it.hide(WindowInsetsCompat.Type.navigationBars())
    
    // 추가 사항  아래꺼 추가 안하면 계속 상태바하고 네비게이션바가 나왔다 들어갔다함.
    it.systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
    
}

 

 

구글 이놈들도 이게 문제인지 알기 때문에 Compat 이라는 이름들이 붙은 호환성 클래스를 만들어 놨다.

그럴꺼면 문서에 두 개 다 써놓던가..  최신API용 클래스만 덜렁 적어 놓네. 

 

 
반응형
Comments