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 unaFloatingActionButton
, il layout sposta il pulsante verso l'alto quando mostra unSnackbar
, di disegnareSnackbar
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.
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 unaCoordinatorLayout
o la visualizzazione dei contenuti dell'arredamento delle finestre. In genere, è più semplice passareCoordinatorLayout
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
oLENGTH_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();