Android 15에서 SystemBar(StatusBar, NavigationBar) 관련하여 변경사항이 발생하였는데, 바로 Window.navigationBarColor, Window.statusBarColor 가 deprecated 된 것입니다. 이와 관련하여 제가 대응한 해결 방법을 공유합니다.
Android 15 Edge-to-edge enforcement 공식 문서
Android 15 버전부터 enableEdgeToEdge() 를 강제하도록 변경되었습니다.

SystemBar(StatusBar, NavigationBar) 영역까지 화면을 확장시키는 함수입니다.
Android 15 버전부터 enableEdgeToEdge() 를 강제로 적용시킴으로써 SystemBar 의 색상을 따로 적용하지 않도록 하기 위해 deprecated 된 것이 아닐까 하는 저의 개인적인 생각입니다.
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
enableEdgeToEdge()
super.onCreate(savedInstanceState)
}
}
enableEdgeToEdge()를 사용하기 위해서 Activity 는ComponentActivity를 상속해야 합니다.enableEdgeToEdge()는 onCreate 시점에서super.onCreate(savedInstanceState)이전에 호출해야 합니다.
enableEdgeToEdge() 로 인해 상태바와 네비게이션바 영역까지 화면이 확장되어 두 영역의 색상은 화면의 색상과 동일하게 설정됩니다.
하지만 enableEdgeToEdge() 를 적용하더라도 네비게이션바의 경우 제스처 모드에서만 예상한대로 동작하고 2버튼 또는 3버튼일 경우 따로 설정이 필요합니다.

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { //SDK 29(Android 10) 이상
window.isNavigationBarContrastEnforced = false
} else { //SDK 28(Android 9) 이하
window.navigationBarColor = /** NavigationBar 색상 **/
}
window.isNavigationBarContrastEnforced 을 false 로 설정합니다.
window.isNavigationBarContrastEnforced 란 SystemBar 가 투명하게 설정되었을 때 System 바의 아이콘이 구분될 수 있도록 안드로이드에서 자체적으로 대비를 조절할지를 설정하는 메서드입니다.
true 로 설정하면 대비가 조절되어 위의 사진과 같이 모든 영역에 배경색이 확장되지 않게 됩니다.
제가 원하는 상황은 모든 영역에 배경색이 확장되는 것이기 때문에 false 로 설정하였습니다.
window.navigationBarColor 메서드를 사용하여 네비게이션바의 색상을 설정합니다.
아이콘 색상은 WindowInsetsControllerCompat 클래스의 isAppearanceLightStatusBars/isAppearanceLightNavigationBars 메서드로 설정할 수 있습니다.
WindowInsetsControllerCompat(window, window.decorView).run {
isAppearanceLightStatusBars = /** 검은색: true, 흰색: false **/
isAppearanceLightNavigationBars = /** 검은색: true, 흰색: false **/
}
현재 상태바와 네비게이션바에 설정된 색상에 맞춰 아이콘 색상을 설정하길 바랍니다.