Puoi attivare il display edge-to-edge nella tua app chiamando
enableEdgeToEdge
.
Questa opzione dovrebbe essere sufficiente per la maggior parte delle app. Questa guida descrive come abilitare
la funzionalità edge-to-edge se la tua app deve farlo senza utilizzare enableEdgeToEdge
.
Disporre la tua app a schermo intero
Utilizza WindowCompat.setDecorFitsSystemWindows(window,
false)
per disporre la tua 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); }
Modifica del colore delle barre di sistema
Quando utilizzi un layout edge-to-edge, l'app deve modificare i colori delle barre di sistema per rendere visibili i contenuti sottostanti. Dopo che l'app ha eseguito questo passaggio, il sistema gestisce tutta la protezione visiva dell'interfaccia utente in modalità di navigazione tramite gesti e in modalità con pulsanti.
- Modalità di navigazione tramite gesti: il sistema applica un adattamento dinamico del colore in cui i contenuti delle barre di sistema cambiano colore in base ai contenuti sottostanti. Nell'esempio seguente, il punto di manipolazione nella barra di navigazione diventa di colore scuro quando è sopra contenuti chiari e di colore chiaro in corrispondenza di contenuti scuri.
- Modalità pulsante: il sistema applica una scrim trasparente dietro le barre di sistema (per livello API 29 o versioni successive) o una barra di sistema trasparente (per il livello API 28 o versioni precedenti).
![Un'immagine che mostra barre di sistema traslucide](https://developer.android.google.cn/static/images/guide/navigation/e2e-translucent-scrim.png?authuser=6&hl=it)
- Colore dei contenuti della barra di stato: consente di controllare il colore dei contenuti della barra di stato, ad esempio ora e icone.
![Il colore dei contenuti della barra di stato di un'immagine](https://developer.android.google.cn/static/images/guide/navigation/e2e-status-color.png?authuser=6&hl=it)
Puoi modificare il file themes.xml
per impostare il colore della barra di navigazione e,
facoltativamente, impostare la barra di stato come trasparente e il colore dei contenuti della barra su
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 usare
direttamente l'API WindowInsetsController
, ma ti consigliamo vivamente di utilizzare la libreria di assistenza
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 di 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);