카테고리 없음

[Android Studio] 상태바 완전 숨기기

ziziDev 2025. 6. 2. 23:00
반응형

 - 상태바(Status Bar)를 완전히 숨기는 방법

☘️WindowCompat.setDecorFitsSystemWindows() + WindowInsetsController

import android.os.Build
import android.view.View
import android.view.WindowInsets
import android.view.WindowInsetsController
import androidx.core.view.WindowCompat

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    // 시스템 UI와 겹치게 할 수 있도록 설정 (상태바 포함)
    WindowCompat.setDecorFitsSystemWindows(window, false)

    // 상태바 숨기기
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
        window.insetsController?.hide(WindowInsets.Type.statusBars())
    } else {
        @Suppress("DEPRECATION")
        window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_FULLSCREEN
    }

    setContent {
        // Compose UI 작성
    }
}

 

WindowCompat.setDecorFitsSystemWindows(...) 앱이 상태바나 내비게이션 바 아래로도 확장될 수 있게 함
window.insetsController?.hide(...) 상태바를 숨김
systemUiVisibility = View.SYSTEM_UI_FLAG_FULLSCREEN (구버전용) 동일 기능

❗주의사항

  • 사용자가 다시 화면을 터치하거나 스크롤하면 상태바가 다시 나타날 수 있어요 (임시 숨김일 때).
  • 완전한 “몰입형 모드(Immersive Mode)”로 유지
window.insetsController?.systemBarsBehavior =
    WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE

 

 

- 완전히 상태바와 내비게이션 바 모두 숨기고 싶을 경우

window.insetsController?.hide(
    WindowInsets.Type.statusBars() or WindowInsets.Type.navigationBars()
)

 

-  다시 상태바를 보이게 하려면

window.insetsController?.show(WindowInsets.Type.statusBars())
반응형