Visualizzare messaggi popup o richieste di input da parte dell'utente

Il componente Dialog mostra messaggi popup o richiede l'input dell'utente su un livello sopra i contenuti principali dell'app. Crea un'esperienza utente che interrompe per attirare l'attenzione dell'utente.

Ecco alcuni casi d'uso per una finestra di dialogo:

  • Conferma dell'azione dell'utente, ad esempio quando viene eliminato un file.
  • Richiesta di input utente, ad esempio in un'app per le liste di cose da fare.
  • Presentazione di un elenco di opzioni per la selezione da parte dell'utente, ad esempio la scelta di un paese nella configurazione di un profilo.

Questo argomento fornisce le seguenti implementazioni:

Compatibilità delle versioni

Questa implementazione richiede che il valore minSDK del progetto sia impostato sul livello API 21 o superiore.

Dipendenze

Finestra di dialogo Crea avviso

Il composable AlertDialog fornisce un'API pratica per creare una finestra di dialogo in tema Material Design. L'esempio seguente implementa due pulsanti in una finestra di dialogo di avviso, uno che chiude la finestra di dialogo e un altro che conferma la richiesta:

Questa implementazione implica un elemento componibile principale che passa gli argomenti all'elemento componibile secondario in questo modo:

Risultati

Una finestra di dialogo di avviso aperta con un pulsante di conferma e di ignoramento.
Figura 1. Una finestra di dialogo di avviso con pulsanti.

Punti chiave

AlertDialog ha parametri specifici per la gestione di determinati elementi della dialog. tra cui:

  • title: il testo visualizzato nella parte superiore della finestra di dialogo.
  • text: il testo visualizzato al centro della finestra di dialogo.
  • icon: l'immagine visualizzata nella parte superiore della finestra di dialogo.
  • onDismissRequest: la funzione chiamata quando l'utente chiude la finestra di dialogo, ad esempio toccando al di fuori.
  • dismissButton: un composable che funge da pulsante di chiusura.
  • confirmButton: un composable che funge da pulsante di conferma.

  • Quando l'utente fa clic su uno dei pulsanti, la finestra di dialogo si chiude. Quando l'utente fa clic su Conferma, viene chiamata una funzione che gestisce anche la conferma. In questo esempio, queste funzioni sono onDismissRequest() e onConfirmRequest().

    Se la finestra di dialogo richiede un insieme di pulsanti più complesso, potresti beneficiare dell'utilizzo del composable Dialog e compilarlo in modo più libero.

Creare una finestra di dialogo

Dialog è un componente componibile di base che non fornisce stili o scomparti predefiniti per i contenuti. Si tratta di un contenitore semplice che devi compilare con un contenitore come Card. Di seguito sono riportati alcuni dei parametri chiave di una finestra di dialogo:

  • onDismissRequest: la funzione lambda chiamata quando l'utente chiude la finestra di dialogo.
  • properties: un'istanza di DialogProperties che offre un ambito aggiuntivo per la personalizzazione.

Creare una finestra di dialogo di base

L'esempio seguente è un'implementazione di base del composable Dialog. Tieni conto che utilizza un Card come contenitore secondario. Senza Card, il componente Text verrebbe visualizzato da solo sopra i contenuti principali dell'app.

Risultato

Tieni presente che quando la finestra di dialogo è aperta, i contenuti principali dell'app sottostanti vengono attenuati e non sono selezionabili:

Una finestra di dialogo che non contiene altro che un'etichetta.
Figura 2. Dialogo minimo.

Creare una finestra di dialogo avanzata

Di seguito è riportata un'implementazione più avanzata del composable Dialog. In questo caso, il componente implementa manualmente un'interfaccia simile a quella dell'esempioAlertDialog precedente.

Risultato

Una finestra di dialogo con una foto del Monte Feathertop, Victoria. Sotto l'immagine sono presenti un pulsante di chiusura e un pulsante di conferma.
Figura 3. Una finestra di dialogo che include un'immagine.

Raccolte che contengono questa guida

Questa guida fa parte di queste raccolte di guide rapide selezionate che coprono obiettivi di sviluppo Android più ampi:

Il testo è un elemento centrale di qualsiasi interfaccia utente. Scopri diversi modi per presentare il testo nella tua app in modo da offrire un'esperienza utente piacevole.
Scopri come implementare modi per consentire agli utenti di interagire con la tua app inserendo testo e utilizzando altri metodi di inserimento.
Scopri come le funzioni composable possono aiutarti a creare facilmente magnifici componenti dell'interfaccia utente basati sul sistema di progettazione Material Design.

Domande o feedback

Visita la nostra pagina delle domande frequenti e scopri le guide rapide o contattaci per farci sapere cosa ne pensi.