Vous pouvez utiliser un
Snackbar
jusqu'à
d'afficher un bref message à l'attention de l'utilisateur. Retirer le "J’aime"
Notifications, les
disparaît automatiquement après un court laps de temps. Un Snackbar
correspond à
idéal pour les messages brefs
sur lesquels l'utilisateur n'a pas besoin d'agir. Par exemple, un
L'application de messagerie peut utiliser un Snackbar
pour indiquer à l'utilisateur que l'application
un e-mail a bien été envoyé.
Utiliser un CoordinatorLayout
Un Snackbar
est associé à une vue. Snackbar
fournit des fonctionnalités de base s'il est associé à un objet dérivé de
View
, comme
l'un des objets de mise en page courants. Toutefois, si Snackbar
est
associé à un
CoordinatorLayout
,
le Snackbar
bénéficie de fonctionnalités supplémentaires:
- L'utilisateur peut ignorer
Snackbar
en balayant l'écran. - La mise en page déplace les autres éléments de l'interface utilisateur lorsque
Snackbar
apparaît. Par exemple, si la mise en page comporte unFloatingActionButton
, la mise en page déplace le bouton vers le haut lorsqu'il affiche unSnackbar
, au lieu de de dessinerSnackbar
au-dessus du bouton. Vous pouvez voir comment comme illustré dans la figure 1.
La classe CoordinatorLayout
fournit un sur-ensemble du
la fonctionnalité de
FrameLayout
Si votre application utilise déjà un élément FrameLayout
, vous pouvez remplacer cette mise en page.
avec un CoordinatorLayout
pour activer le Snackbar
complet
de Google Cloud. Si votre application utilise d'autres objets de mise en page, encapsulez votre mise en page existante.
d'une CoordinatorLayout
, comme illustré ci-dessous
Exemple:
<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>
Définissez une balise android:id
pour votre CoordinatorLayout
.
Vous avez besoin de l'ID de la mise en page lorsque vous affichez le message.
Afficher un message
L'affichage d'un message s'effectue en deux étapes. Tout d'abord, vous créez
Objet Snackbar
avec le texte du message. Ensuite, vous appelez la fonction
show()
pour présenter le message à l'utilisateur.
Créer un objet Snackbar
Créez un objet Snackbar
en appelant la méthode
Snackbar.make()
. Lorsque vous créez le Snackbar
, spécifiez le message
et la durée d'affichage du message:
Kotlin
val mySnackbar = Snackbar.make(view, stringId, duration)
Java
Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
- vue
-
Vue à laquelle associer le
Snackbar
. La méthode recherche de la vue transmise jusqu'à atteindreCoordinatorLayout
ou la vue de contenu du décor de fenêtre. Habituellement, il est plus simple de transmettre leCoordinatorLayout
en intégrant votre contenu. - chaîneId
- ID de ressource du message que vous souhaitez afficher. Il peut être formaté ou du texte non mis en forme.
- de visionnage
-
Durée d'affichage du message. Il peut s'agir
LENGTH_SHORT
ouLENGTH_LONG
Présenter le message à l'utilisateur
Après avoir créé le Snackbar
, appelez sa fonction show()
.
pour présenter Snackbar
à l'utilisateur:
Kotlin
mySnackbar.show()
Java
mySnackbar.show();
Le système n'affiche pas plusieurs objets Snackbar
en même temps
Par conséquent, si la vue affiche actuellement un autre Snackbar
, la
met votre Snackbar
en file d'attente système et l'affiche après la
Snackbar
expire ou est ignorée.
Si vous souhaitez diffuser un message auprès de l'utilisateur et que vous n'avez pas besoin d'appeler l'un des
méthodes utilitaires de l'objet Snackbar
, vous n'avez pas besoin de conserver
une référence à Snackbar
après avoir appelé show()
; Pour
C'est pourquoi il est courant d'utiliser un chaînage de méthodes pour créer et afficher
Snackbar
dans une seule instruction:
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();