반응형
android 30(API 30, Android 11) 이상에서는 systemUiVisibility 대신 WindowInsetsController를 사용하는 방식으로 변경되었습니다. 이제 더 세련되고 구체적으로 UI를 숨기거나 표시할 수 있어요.
이전 방식이 decorView와 systemUiVisibility에 의존했다면, 새로운 방식은 WindowInsetsController를 활용하여 상태바, 네비게이션바 등을 다루도록 개선됐습니다.
private fun hideBottomNavigation() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
val windowInsetsController = activity?.window?.insetsController
windowInsetsController?.let {
it.hide(WindowInsets.Type.systemBars()) // 상태바, 네비게이션바 숨김
it.systemBarsBehavior = WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE // 스와이프로 다시 나타나게 설정
}
} else {
@Suppress("DEPRECATION")
activity?.window?.decorView?.systemUiVisibility =
(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY)
}
}
반응형
'Android Studio' 카테고리의 다른 글
Kotlin/Android | FLAG_FULLSCREEN int' is Deprecated (0) | 2024.12.24 |
---|---|
Android | WebView(웹뷰) (2) | 2024.12.13 |
Android | Activity, Fragment, View, Intent, Context (0) | 2024.12.11 |
Android Studio + Kotlin | 옛 프로젝트에서 프로필 이미지 변경 안되는 현상 (0) | 2024.12.09 |