본문 바로가기

프로그래밍

안드로이드 setSystemUiVisibility() Deprecated로 statusBarColor 글자색 못바꿀때

반응형

코드로 statusBar 색상을 변경할때 

setSystemUiVisibility()가 Deprecated로 LIGHT_STATUS_BAR(글자색) 값을 줄수 없었다

아래와 같은 방법으로 상태바 색상을 바꾸면 됩니다.

fragment에서도 가능합니다.

 

 

SDK 버전이 API 30 이상인경우(안드로이드 R 버전 이상인경우)

1
2
3
4
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
   WindowInsetsControllerCompat(window, view).isAppearanceLightStatusBars = true
    activity!!.window.statusBarColor = ContextCompat.getColor(context!!,R.color.statusBarColor)
}
cs

 

 

29 이하버전의 경우

1
2
3
4
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    activity!!.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR)
    activity!!.window.statusBarColor = ContextCompat.getColor(context!!,R.color.statusBarColor)
}
cs

 

 

navigation bar 색상을 바꾸고 싶은경우는 이렇게 사용하면 됩니다.

WindowInsetsControllerCompat(activity!!.window, view).isAppearanceLightNavigationBars

 

 

 

 

WindowInsetsControllerCompat  |  Android 개발자  |  Android Developers

WindowInsetsControllerCompat public final class WindowInsetsControllerCompat extends Object java.lang.Object    ↳ androidx.core.view.WindowInsetsControllerCompat Provide simple controls of windows that generate insets. For SDKs >= 30, this class is a

developer.android.com

 

반응형