728x90
반응형
안드로이드 앱 UI를 짤 때 상단바와 하단바를 아래 코드로 제거하면
private fun setFullScreen() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
window.setDecorFitsSystemWindows(false)
val controller = window.insetsController
if (controller != null) {
// statusBar -> 상단바 제거 , navigationBars -> 하단바 제거
controller.hide(WindowInsets.Type.statusBars() or WindowInsets.Type.navigationBars())
controller.systemBarsBehavior = WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
}
} else {
window.decorView.systemUiVisibility =
(View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN)
}
}
이렇게 상단바에(+하단바) 아무 것도 나오지 않는 UI가 만들어진다
근데 내가 원하는 것은 그냥 내 배경화면에 흰색 상태바나 검은색 상태바가 나타나는걸 원하는 것이였다.
-> 내 배경화면에 어울러지는 상태바!!!
(위처럼 해서 상태바의 색상을 줄 수도 있지만 이처럼 하면 무늬가 있는 배경화면을 사용할 때 뭔가 이상하다는 것을 알 수 있음)
이럴 때는, 위의 함수를 다시 잘 봐야 한다.
상단바와 하단바를 둘 다 제거하였는데
이번에는 상단바는 제거하지 않고 상단바의 배경을 transparent를 줘야 한다.
방법은
1. 위 함수에서 상단바를 제거하는 코드는 제거해준다.
private fun setFullScreen() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
window.setDecorFitsSystemWindows(false)
val controller = window.insetsController
if (controller != null) {
// navigationBars -> 하단바 제거
controller.hide(WindowInsets.Type.navigationBars())
controller.systemBarsBehavior = WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
}
} else {
window.decorView.systemUiVisibility =
(View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN)
}
}
이렇게 수정해준다.
2. res -> theme.xml에
<!-- Status bar color. -->
<item name="android:windowLightStatusBar" >false</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:enforceStatusBarContrast" tools:targetApi="q">false</item>
이렇게 세 줄을 추가해준다.
이 때,
<item name="android:windowLightStatusBar" >false</item>
false를 주면
상태바가 하얗게 나오고
<item name="android:windowLightStatusBar" >true</item>
true를 주면
까맣게 나온다.
728x90
반응형
'안드로이드 스튜디오' 카테고리의 다른 글
[안드로이드 스튜디오 코틀린] MVVM 패턴 BaseActivity, BaseFragment 적용(ViewBinding) (0) | 2023.08.25 |
---|---|
[안드로이드 스튜디오 코틀린] MPAndroidChart - Radar Chart 사용하기 (0) | 2023.08.22 |
[안드로이드 스튜디오 코틀린] ProgressBar 색상 설정 (0) | 2023.08.22 |
[안드로이드 스튜디오 코틀린] WebSocket Server 생성하기 (0) | 2023.07.07 |
[안드로이드 스튜디오 코틀린] 내부 저장소 용량, 사용 가능한 용량 구하는 예제 (0) | 2023.06.22 |