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:
- Chiama il numero
WindowCompat.setDecorFitsSystemWindows(window, false)
. - Imposta le barre di sistema su Trasparente.
- 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.