Creare e visualizzare un messaggio popup

Prova il metodo Scrivi
Jetpack Compose è il toolkit consigliato per la UI per Android. Scopri come aggiungere notifiche in Compose.

Puoi utilizzare uno dei seguenti Da Snackbar a mostrare un breve messaggio all'utente. Non mi piace Notifiche, il il messaggio scompare automaticamente dopo un breve periodo di tempo. Un valore Snackbar è ideale per i messaggi brevi su cui l'utente non deve intervenire. Ad esempio, un L'app email può usare un Snackbar per comunicare all'utente che l'app ha inviato un'email.

Usa un layout Coordinator

Un Snackbar è collegato a una vista. Snackbar fornisce la funzionalità di base se è collegato a qualsiasi oggetto derivato View classe, come uno qualsiasi degli oggetti di layout comuni. Tuttavia, se Snackbar è collegato a un CoordinatorLayout, il Snackbar dispone di funzionalità aggiuntive:

  • L'utente può ignorare Snackbar facendolo scorrere per nasconderlo.
  • Il layout sposta altri elementi UI quando viene visualizzato Snackbar. Ad esempio, se il layout ha una FloatingActionButton, il layout sposta il pulsante verso l'alto quando mostra un Snackbar, di disegnare Snackbar sopra il pulsante. Puoi vedere come come mostrato nella figura 1.

La classe CoordinatorLayout fornisce un soprainsieme di funzionalità di FrameLayout. Se la tua app utilizza già un FrameLayout, puoi sostituire quel layout con CoordinatorLayout per abilitare l'intera Snackbar funzionalità. Se l'app utilizza altri oggetti di layout, aggrega il layout esistente in un CoordinatorLayout, come mostrato di seguito esempio:

<android.support.design.widget.CoordinatorLayout
    android:id="@+id/myCoordinatorLayout"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- Here are the existing layout elements, now wrapped in
         a CoordinatorLayout. -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <!-- ...Toolbar, other layouts, other elements... -->

    </LinearLayout>

</android.support.design.widget.CoordinatorLayout>

Imposta un tag android:id per CoordinatorLayout. Hai bisogno dell'ID del layout quando visualizzi il messaggio.

Figura 1. L'elemento CoordinatorLayout sposta FloatingActionButton in più quando appare Snackbar.

Mostra un messaggio

Per visualizzare un messaggio sono previsti due passaggi. Per prima cosa, crei un Snackbar oggetto con il testo del messaggio. Quindi, chiami il metodo show() per mostrare il messaggio all'utente.

Crea un oggetto Snackbar

Crea un oggetto Snackbar richiamando il carattere statico Snackbar.make() . Quando crei l'Snackbar, specifica il messaggio e per quanto tempo mostrare il messaggio:

Kotlin

val mySnackbar = Snackbar.make(view, stringId, duration)

Java

Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
visualizza
La vista a cui collegare il Snackbar. Il metodo cerca gerarchia di visualizzazioni dalla vista passata fino a raggiungere una CoordinatorLayout o la visualizzazione dei contenuti dell'arredamento delle finestre. In genere, è più semplice passare CoordinatorLayout che includono i tuoi contenuti.
IDstringa
L'ID risorsa del messaggio che vuoi visualizzare. Può essere formattato o testo non formattato.
media
Il periodo di tempo in cui mostrare il messaggio. Può essere LENGTH_SHORT o LENGTH_LONG.

Mostra il messaggio all'utente

Dopo aver creato Snackbar, chiama il suo show() per mostrare Snackbar all'utente:

Kotlin

mySnackbar.show()

Java

mySnackbar.show();

Il sistema non mostra più oggetti Snackbar contemporaneamente quindi se la visualizzazione attualmente mostra un altro Snackbar, sistema mette in coda il tuo Snackbar e lo visualizza dopo l'attuale Snackbar scade o viene ignorata.

Se vuoi mostrare un messaggio all'utente e non devi chiamare nessuno dei di utilità dell'oggetto Snackbar, non è necessario utilizzare riferimento a Snackbar dopo che hai chiamato show(). Per Per questo motivo, è comune utilizzare metodi per creare e mostrare un Snackbar in una singola istruzione:

Kotlin

Snackbar.make(
        findViewById(R.id.myCoordinatorLayout),
        R.string.email_sent,
        Snackbar.LENGTH_SHORT
).show()

Java

Snackbar.make(findViewById(R.id.myCoordinatorLayout), R.string.email_sent,
                        Snackbar.LENGTH_SHORT)
        .show();