Configurare manualmente il display edge-to-edge

La chiamata a enableEdgeToEdge incapsula la logica necessaria per essere veramente compatibile con le versioni precedenti ed è quindi il modo consigliato per configurare un display edge-to-edge. Consulta la documentazione di Compose e Views anziché questa guida per scoprire il modo moderno di andare da bordo a bordo utilizzando enableEdgeToEdge.

Anche se non è consigliato, se la tua app deve configurare manualmente una visualizzazione edge-to-edge, puoi seguire questi passaggi:

  1. Chiama il numero WindowCompat.setDecorFitsSystemWindows(window, false).
  2. Imposta le barre di sistema su Trasparente.
  3. Gestisci gli insetti.

Disporre l'app a schermo intero

Utilizza WindowCompat.setDecorFitsSystemWindows(window, false) per disporre l'app dietro le barre di sistema, come mostrato nel seguente esempio di codice:

Kotlin

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

Java

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

Modificare il colore delle barre di sistema

Quando crei manualmente un layout edge-to-edge per Android 14 e versioni precedenti, la tua app deve anche rendere trasparenti le barre di sistema.

Puoi modificare il file themes.xml per impostare il colore della barra di stato e di navigazione come trasparente e modificare il colore dell'icona della barra di stato.

<!-- 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>

Puoi utilizzare l'API WindowInsetsControllerCompat anziché theme.xml per controllare il colore dei contenuti della barra di stato. A questo scopo, utilizza la funzione setAppearanceLightNavigationBars(), passando true per cambiare il colore del primo piano della navigazione in un colore chiaro o false per ripristinare il colore predefinito.

Kotlin

val windowInsetsController =
      ViewCompat.getWindowInsetsController(window.decorView)

windowInsetsController?.isAppearanceLightNavigationBars = true

Java

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

windowInsetsController.setAppearanceLightNavigationBars(true);

Gestire gli inset

Infine, la tua app deve gestire gli inset in modo che l'UI critica eviti le barre di sistema e il ritaglio del display. Consulta la documentazione relativa a Composizione e Viste per scoprire come gestire gli inserti.