더 넓은 화면 디스플레이 수동으로 설정하기

다음을 호출하여 앱에서 더 넓은 디스플레이를 사용 설정할 수 있습니다. enableEdgeToEdge 대부분의 앱에는 이 정도면 충분합니다. 이 가이드에서는 앱에서 enableEdgeToEdge를 사용하지 않고도 전체 화면을 사용 설정해야 하는 경우 이를 사용하는 방법을 설명합니다.

앱을 전체 화면으로 배치하기

WindowCompat.setDecorFitsSystemWindows(window, false) 사용 다음 코드와 같이 시스템 표시줄 뒤에 앱을 배치합니다. 예:

Kotlin

override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  WindowCompat.setDecorFitsSystemWindows(window, false)
}

자바

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  WindowCompat.setDecorFitsSystemWindows(getWindow(), false);
}

시스템 표시줄 색상 변경하기

더 넓은 화면 레이아웃에서 작동할 때 앱은 기본 화면의 색상을 시스템 표시줄을 아래로 스크롤해서 그 아래에 있는 콘텐츠가 표시되도록 합니다. 앱 실행 후 이 단계를 수행하면 시스템은 사용자의 모든 시각적 보호를 처리합니다. 동작 탐색 모드와 버튼 모드의 인터페이스입니다.

  • 동작 탐색 모드: 시스템이 동적 색상 적응을 배경의 콘텐츠에 따라 시스템 표시줄의 내용이 색이 변하는 것을 볼 수 있습니다. 있습니다. 다음 예에서 탐색 메뉴의 핸들은 밝은 콘텐츠 위에 있으면 어두운 색, 밝은 콘텐츠 위에 있으면 밝은 색으로 어두운 콘텐츠
그림 1. 동작 탐색 모드에서 색상이 변경됩니다.
  • 버튼 모드: 시스템에서 버튼에 반투명 버튼을 스크림 시스템 표시줄 뒤 (API 수준 29 이상) 또는 투명한 시스템 (API 수준 28 이하의 경우)
를 통해 개인정보처리방침을 정의할 수 있습니다. <ph type="x-smartling-placeholder">
</ph> 반투명 시스템 표시줄을 보여주는 이미지 <ph type="x-smartling-placeholder">
</ph> 그림 2. 시스템 표시줄 뒤의 반투명 스크림
  • 상태 표시줄 콘텐츠 색상: 시간 및 아이콘과 같은 상태 표시줄 콘텐츠의 색상을 제어합니다.
상태 표시줄 콘텐츠 색상 표시 이미지
그림 3. 상태 표시줄 콘텐츠 색상입니다.

themes.xml 파일을 수정하여 탐색 메뉴의 색상을 설정할 수 있습니다. 선택적으로, 상태 표시줄을 투명으로, 상태 표시줄 콘텐츠 색상을 어둡게 합니다.

<!-- values-v29/themes.xml -->
<style name="Theme.MyApp">
  <item name="android:navigationBarColor">
     @android:color/transparent
  </item>

  <!-- Optional: set to transparent if your app is drawing behind the status bar. -->
  <item name="android:statusBarColor">
     @android:color/transparent
  </item>

  <!-- Optional: set for a light status bar with dark content. -->
  <item name="android:windowLightStatusBar">
    true
  </item>
</style>

WindowInsetsController API를 직접 사용할 수도 있지만 가능하면 지원 라이브러리 WindowInsetsControllerCompat를 사용하는 것이 좋습니다. theme.xml 대신 WindowInsetsControllerCompat API를 사용하여 상태 표시줄의 콘텐츠 색상을 제어할 수 있습니다. 이렇게 하려면 setAppearanceLightNavigationBars() 함수를 사용하여 true를 전달하여 탐색의 전경 색상을 밝은 색상으로 변경하거나 false를 전달하여 기본 색상으로 되돌립니다.

Kotlin

val windowInsetsController =
      ViewCompat.getWindowInsetsController(window.decorView)

windowInsetsController?.isAppearanceLightNavigationBars = true

Java

WindowInsetsControllerCompat windowInsetsController =
      ViewCompat.getWindowInsetsController(getWindow().getDecorView());
if (windowInsetsController == null) {
    return;
}

windowInsetsController.setAppearanceLightNavigationBars(true);