Créer et afficher un message pop-up

Essayer Compose
Jetpack Compose est le kit d'outils d'interface utilisateur recommandé pour Android. Découvrez comment ajouter des notifications dans Compose.
<ph type="x-smartling-placeholder"></ph> SnackBar →

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 un FloatingActionButton, la mise en page déplace le bouton vers le haut lorsqu'il affiche un Snackbar, au lieu de de dessiner Snackbar 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.

Figure 1 : Le CoordinatorLayout déplace le FloatingActionButton vers le haut lorsque Snackbar s'affiche.

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'à atteindre CoordinatorLayout ou la vue de contenu du décor de fenêtre. Habituellement, il est plus simple de transmettre le CoordinatorLayout 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 ou LENGTH_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();