Un ritaglio del display è un'area su alcuni dispositivi che si estende nella superficie del display. Consente un'esperienza da bordo a bordo, offrendo al contempo spazio per importanti sensori sulla parte anteriore del dispositivo.
Android supporta i ritagli del display sui dispositivi con Android 9 (livello API 28) e versioni successive. Tuttavia, i produttori di dispositivi possono supportare anche i ritagli del display su dispositivi con Android 8.1 o versioni precedenti.
Questa pagina descrive come implementare il supporto per i dispositivi con ritagli in Compose, inclusa la modalità di utilizzo dell'area ritagliata, ovvero il rettangolo edge-to-edge sulla superficie del display che contiene il ritaglio.
Maiuscolo predefinito
Le app che hanno come target il livello API 34 o versioni precedenti o le attività che non chiamano
enableEdgeToEdge
non verranno disegnate nella regione del ritaglio per impostazione predefinita, a meno che l'app
non venga disegnata in una barra di sistema contenente il ritaglio del display.
Le app che hanno come target il livello API 35 o versioni successive su dispositivi con Android 15 o versioni successive o le attività che chiamano enableEdgeToEdge
disegnano nella regione ritagliata.
In altre parole, LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
,
LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
e
LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER
vengono interpretati come
LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS
per le finestre non fluttuanti nelle app
che hanno come target il livello API 35 o versioni successive su dispositivi con Android 15 o
versioni successive.
Gestire manualmente le informazioni relative al ritaglio
Devi gestire le informazioni relative al ritaglio per evitare che l'area ritagliata oscuri testo, controlli o elementi interattivi importanti che richiedono un riconoscimento accurato del tocco (la sensibilità al tocco potrebbe essere inferiore nell'area ritagliata). Durante la gestione dei ritagli, non impostare l'altezza della barra di stato in modo hardcoded, in quanto ciò potrebbe causare contenuti sovrapposti o tagliati. Gestisci invece i ritagli in uno dei seguenti modi:
Utilizzo di
WindowInsets.displayCutout
,WindowInsets.safeContent
oWindowInsets.safeDrawing
Accesso all'oggetto ritaglio
Path
conLocalView.current.rootWindowInsets.displayCutout
Per Compose, ti consigliamo di utilizzare displayCutout
, safeContent
o
safeDrawing
per gestire gli inserti ritagliati nei composabili. Questo approccio consente di rispettare il padding del ritaglio del display dove necessario o di ignorarlo dove non è necessario.
Canvas(modifier = Modifier.fillMaxSize().windowInsetsPadding(WindowInsets.displayCutout)) { drawRect(Color.Red, style = Stroke(2.dp.toPx())) }
Testare il rendering dei contenuti con i ritagli
Assicurati di testare tutte le schermate e le esperienze dell'app. Se possibile, esegui il test su dispositivi con diversi tipi di ritagli. Se non hai un dispositivo con un'area tagliata, puoi simulare configurazioni comuni dell'area tagliata su qualsiasi dispositivo o emulatore con Android 9 o versioni successive seguendo questa procedura:
- Attiva Opzioni sviluppatore.
- Nella schermata Opzioni sviluppatore, scorri verso il basso fino alla sezione Disegno e seleziona Simula un display con un ritaglio.
- Seleziona il tipo di ritaglio.
Consigliati per te
- Nota: il testo del link viene visualizzato quando JavaScript è disattivato
- Insegni della finestra in Scrivi
- Modificatori di grafica
- Applicare uno stile al paragrafo