더 넓은 화면 표시는 앱이 시스템 표시줄(상태 표시줄, 캡션 표시줄, 탐색 메뉴) 뒤에 UI를 그려 더 몰입감 있는 사용자 환경을 구현할 수 있도록 합니다. Android 15 (API 수준 35) 이상을 실행하는 기기를 타겟팅하는 경우 더 넓은 화면 표시가 적용됩니다 기본적으로.
모든 Android 버전에서 콘텐츠를 더 넓은 화면으로 올바르게 표시하려면 다음 설정 단계를 따르세요. 이 단계를 따르지 않으면 앱이 시스템 표시줄 뒤에 단색을 그리거나 터치 키보드(IME) 전환과 동기화하여 콘텐츠에 애니메이션을 적용하지 않을 수 있습니다.
Android 기술
GitHub에서 보기더 넓은 화면 표시 지원 추가
android skills add edge-to-edge1. 더 넓은 화면 표시 사용 설정
이전 Android 버전에서 더 넓은 화면 표시를 사용 설정하려면
enableEdgeToEdge() 메서드에서 Activity.onCreate()를 호출합니다.
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() // ... }
기본적으로 enableEdgeToEdge()는 3버튼 탐색 모드를 제외하고 시스템 표시줄을 투명하게 만듭니다. 3버튼 탐색 모드에서는 더 나은 대비를 위해 탐색 메뉴에 반투명 스크림을 적용합니다. 시스템 아이콘과 스크림의 색상은 시스템의 밝은 테마 또는 어두운 테마에 맞게 조정됩니다.
2. windowSoftInputMode 구성
Activity의
AndroidManifest.xml 항목에서 android:windowSoftInputMode="adjustResize"를 설정합니다. 이 설정을 사용하면 앱이 IME 인셋을 수신하여 터치 키보드가 표시되거나 사라질 때 패딩으로 레이아웃을 조정할 수 있습니다.
<!-- In your AndroidManifest.xml file: -->
<activity
android:name=".ui.MainActivity"
android:label="@string/app_name"
android:windowSoftInputMode="adjustResize"
android:theme="@style/Theme.MyApplication"
android:exported="true">
...
</activity>
3. 인셋을 사용하여 겹침 처리
더 넓은 화면 표시가 사용 설정되면 앱의 일부 콘텐츠와 UI 요소가 시스템 표시줄 뒤에 그려질 수 있습니다. 중요하거나 상호작용 요소가 시스템 표시줄에 의해 가려지거나 시스템 동작과 겹치지 않도록 하려면 인셋을 처리해야 합니다.
인셋은 시스템 UI 또는 시스템 동작과 교차하는 화면 부분을 설명합니다. 더 넓은 화면 표시를 위해 고려해야 할 주요 인셋 유형은 다음과 같습니다.
- 시스템 표시줄 인셋: 시스템 표시줄이 표시되는 영역을 나타냅니다. 시스템 표시줄에 의해 UI가 가려지지 않도록 하려면 이를 사용하세요.
- 디스플레이 컷아웃 인셋: 기기 화면에 실제 컷아웃 (예: 카메라 노치)이 있는 영역을 나타냅니다.
Compose에서는 눈금자, 패딩 수정자 또는 인셋 크기 수정자를 사용하여 인셋을 처리할 수 있습니다. 자세한 안내는 창 인셋 정보를 참고하세요.
고급 주제
더 고급 더 넓은 화면 표시 사용 사례는 다음을 고려하세요.
몰입형 모드
동영상이나 지도와 같은 일부 콘텐츠는 시스템 표시줄이 숨겨진 완전한 몰입형 환경을 통해 이점을 얻을 수 있습니다. WindowInsetsControllerCompat를 사용하여 시스템 표시줄을 숨길 수 있습니다.
val windowInsetsController = WindowCompat.getInsetsController(window, window.decorView) // Hide the system bars. windowInsetsController.hide(WindowInsetsCompat.Type.systemBars()) // Show the system bars. windowInsetsController.show(WindowInsetsCompat.Type.systemBars())
시스템 표시줄 색상 및 아이콘
더 넓은 화면 표시로 전환할 때 앱의 배경이 시스템 표시줄 뒤에 표시될 수 있으므로 더 나은 대비를 위해 시스템 표시줄 아이콘 색상을 조정해야 할 수 있습니다.
상태 표시줄 아이콘을 밝게 또는 어둡게 변경하려면 WindowInsetsControllerCompat를 사용합니다.
// Set status bar icons to dark. WindowCompat.getInsetsController(window, window.decorView) .isAppearanceLightStatusBars = true // Set status bar icons to light. WindowCompat.getInsetsController(window, window.decorView) .isAppearanceLightStatusBars = false
시스템 표시줄 보호
enableEdgeToEdge()는 기본 투명 또는 반투명 시스템 표시줄을 제공하지만 이를 맞춤설정해야 할 수 있습니다. 투명 표시줄과 반투명 표시줄을 언제 사용할지 결정하려면 Android 시스템 표시줄 디자인
안내 및 더 넓은 화면 표시 디자인 안내를 참고하세요.
3버튼 탐색 메뉴를 반투명이 아닌 완전히 투명하게 만들려면 대비 적용을 사용 중지하면 됩니다.
window.isNavigationBarContrastEnforced = false
자세한 내용은 시스템 표시줄 보호 정보를 참고하세요.