반응형
- 상태바(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())
반응형
'Android Studio' 카테고리의 다른 글
[Android Studio] statusBarsPadding() / enableEdgeToEdge() (0) | 2025.06.02 |
---|---|
[Android Studio] Manifest Setting (0) | 2025.06.01 |
AndroidStudio gradle 모음 (0) | 2025.06.01 |
Kotlin/Android| systemUiVisibility Deprecated (0) | 2024.12.24 |
Kotlin/Android | FLAG_FULLSCREEN int' is Deprecated (0) | 2024.12.24 |