앱에 Compose 코드와 뷰 코드가 모두 포함되어 있는 경우 각 코드가 사용할 시스템 인셋을 명시적으로 지정하고 인셋이 동위 뷰에 디스패치되도록 해야 할 수 있습니다.
기본 인셋 재정의
화면에 동일한 계층 구조에 뷰와 Compose 코드가 모두 있는 경우 기본 인셋을 재정의해야 할 수 있습니다. 이 경우 인셋을 사용할 항목과 인셋을 무시할 항목을 명시적으로 지정해야 합니다.
예를 들어 가장 바깥쪽 레이아웃이 Android 뷰 레이아웃인 경우 뷰 시스템에서 인셋을 사용하고 Compose에서는 인셋을 무시해야 합니다.
또는 가장 바깥쪽 레이아웃이 컴포저블인 경우 Compose에서 인셋을 사용하고 AndroidView 컴포저블을 적절히 패딩해야 합니다.
기본적으로 각 ComposeView는 WindowInsetsCompat 소비 수준에서 모든 인셋을 사용합니다. 이 기본 동작을 변경하려면
AbstractComposeView.consumeWindowInsets
을 false로 설정합니다.
뷰의 이전 버전과 호환되는 인셋 디스패치
앱에 뷰 코드가 포함되어 있는 경우 Android 10 (API 수준 29) 이하를 실행하는 기기에서 인셋이 형제 뷰에 디스패치되는지 확인해야 할 수 있습니다. 자세한 내용은 더 넓은 화면으로 뷰 가이드 를 참고하세요.
시스템 표시줄 아이콘
enableEdgeToEdge를 호출하면 기기 테마가 변경될 때 시스템 표시줄 아이콘 색상이 업데이트됩니다.
더 넓은 화면으로 이동하는 동안 앱의 배경과 대비되도록 시스템 표시줄 아이콘 색상을 수동으로 업데이트해야 할 수 있습니다. 예를 들어 밝은 상태 표시줄 아이콘을 만들려면 다음 안내를 따르세요.
Kotlin
WindowCompat.getInsetsController(window, window.decorView) .isAppearanceLightStatusBars = false
자바
WindowCompat.getInsetsController(window, window.getDecorView()) .setAppearanceLightStatusBars(false);