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
la modalità edge-to-edge se la tua app deve farlo senza utilizzare enableEdgeToEdge
.
Disporre l'app a schermo intero
Utilizza WindowCompat.setDecorFitsSystemWindows(window,
false)
per disporre l'app dietro le barre di sistema, come mostrato nell'esempio di codice
seguente:
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 funziona in un layout edge-to-edge, la tua app deve cambiare i colori delle barre di sistema per rendere visibili i contenuti sottostanti. Dopo che la tua app esegue questo passaggio, il sistema gestisce tutta la protezione visiva dell'interfaccia utente in modalità di navigazione tramite gesti e in modalità pulsante.
- Modalità di navigazione tramite gesti:il sistema applica l'adattamento dinamico del colore in cui il colore dei contenuti delle barre di sistema cambia in base ai contenuti sottostanti. Nell'esempio seguente, il cursore nella barra di navigazione cambia in un colore scuro quando si trova sopra contenuti chiari e in un colore chiaro quando si trova sopra contenuti scuri.
- Modalità pulsante:il sistema applica una maschera traslucida dietro le barre di sistema (per il livello API 29 o versioni successive) o una barra di sistema trasparente (per il livello API 28 o versioni precedenti).

- Colore contenuti barra di stato:controlla il colore dei contenuti della barra di stato, ad esempio l'ora e le icone.

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
scuro.
<!-- 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
WindowInsetsController
direttamente, ma ti consigliamo vivamente di utilizzare 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 la funzione
setAppearanceLightNavigationBars()
, passando true
per modificare 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);