Configurare manualmente il display edge-to-edge

Puoi attivare la visualizzazione edge-to-edge nella tua app chiamando enableEdgeToEdge Questo dovrebbe essere sufficiente per la maggior parte delle app. Questa guida descrive come attivare edge-to-edge se la tua app deve farlo senza usare enableEdgeToEdge.

Visualizzare l'app a schermo intero

Utilizza WindowCompat.setDecorFitsSystemWindows(window, false) per posizionare la tua app dietro le barre di sistema, come mostrato nel seguente codice esempio:

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);
}

Modifica il colore delle barre di sistema

Quando utilizzi un layout edge-to-edge, l'app deve modificare i colori le barre di sistema per rendere visibili i contenuti sottostanti. Dopo l'attivazione dell'app esegue questo passaggio, il sistema gestisce tutta la protezione visiva interfaccia in modalità di navigazione tramite gesti e in modalità con pulsanti.

  • Modalità di navigazione tramite gesti: il sistema applica l'adattamento dinamico del colore in i cui contenuti delle barre di sistema cambiano colore in base ai contenuti sottostanti. che li rappresentano. Nell'esempio seguente, il punto di manipolazione nella barra di navigazione diventa un colore scuro quando è sopra i contenuti chiari e a un colore chiaro quando è superiore. contenuti scuri.
di Gemini Advanced.
Figura 1. Cambiamenti di colore nella navigazione tramite gesti .
  • Modalità con pulsanti:il sistema applica una luce trasparente tema dietro le barre del sistema (per il livello API 29 o versioni successive) o un sistema trasparente (per il livello API 28 o precedente).
di Gemini Advanced.
Un'immagine che mostra barre di sistema traslucide
Figura 2. Tela traslucida dietro le barre di sistema.
  • Colore dei contenuti della barra di stato: controlla il colore dei contenuti della barra di stato, ad esempio come ora e icone.
di Gemini Advanced.
Immagine che mostra il colore dei contenuti della barra di stato
Figura 3. Colore dei contenuti della barra di stato.

Puoi modificare il file themes.xml per impostare il colore della barra di navigazione e, facoltativamente, per impostare la barra di stato come trasparente e il colore dei contenuti della barra di stato come oscuro.

<!-- 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 lo API WindowInsetsController ma consigliamo vivamente di usare la libreria di supporto WindowInsetsControllerCompat ove possibile. Puoi utilizzare l'API WindowInsetsControllerCompat anziché theme.xml per controllare il colore dei contenuti della barra di stato. A questo scopo, utilizza setAppearanceLightNavigationBars() , passando true per modificare il colore in 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);