Ritagli in Scrivi

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.

Esempio di ritaglio in modalità Ritratto
Figura 1. Esempio di ritaglio in modalità Ritratto
Esempio di ritaglio in modalità Orizzontale
Figura 2. Esempio di ritaglio in modalità Orizzontale

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:

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:

  1. Attiva Opzioni sviluppatore.
  2. Nella schermata Opzioni sviluppatore, scorri verso il basso fino alla sezione Disegno e seleziona Simula un display con un ritaglio.
  3. Seleziona il tipo di ritaglio.
    simulare un ritaglio del display nell'emulatore
    Figura 3. Utilizza le Opzioni sviluppatore per verificare il rendering dei tuoi contenuti.