Tworzenie i wyświetlanie wyskakującej wiadomości

Wypróbuj sposób tworzenia wiadomości
Jetpack Compose to zalecany zestaw narzędzi UI na Androida. Dowiedz się, jak dodawać powiadomienia w funkcji tworzenia wiadomości

Za pomocą Snackbar do wyświetlić użytkownikowi krótką wiadomość. Nie podoba mi się Powiadomienia, wiadomość jest automatycznie usuwana po krótkim czasie. Obecny stan „Snackbar”: ta funkcja sprawdza się w przypadku krótkich wiadomości, na które użytkownik nie musi wykonywać żadnych działań. Na przykład aplikacja do poczty e-mail może użyć parametru Snackbar, aby poinformować użytkownika, że Użytkownik wysłał wiadomość e-mail.

Użyj układu koordynatora

Element Snackbar jest dołączony do widoku. Snackbar zapewnia podstawową funkcjonalność, o ile jest połączona z dowolnym obiektem wyodrębnionym na podstawie View, taką jak z typowych obiektów układu. Jeśli jednak Snackbar to dołączany do CoordinatorLayout, Snackbar zyskuje dodatkowe funkcje:

  • Użytkownik może zamknąć pole Snackbar, przesuwając ją.
  • Po wyświetleniu elementu Snackbar inne elementy interfejsu zostaną przeniesione. Jeśli na przykład układ ma atrybuty FloatingActionButton, układ przesuwa przycisk w górę, gdy wyświetla się Snackbar, rysunku Snackbar na przycisku. Jak widać, Widać to na rysunku 1.

Klasa CoordinatorLayout udostępnia element nadrzędny: funkcji FrameLayout Jeśli Twoja aplikacja korzysta już z interfejsu FrameLayout, możesz zastąpić ten układ z parametrem CoordinatorLayout, aby włączyć pełne możliwości Snackbar funkcji. Jeśli aplikacja używa innych obiektów układu, opakuj istniejący układ CoordinatorLayout, jak na przykładzie poniżej przykład:

<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>

Ustaw tag android:id dla: CoordinatorLayout. Podczas wyświetlania wiadomości musisz mieć identyfikator szablonu.

Rysunek 1. CoordinatorLayout przesuwa FloatingActionButton w górę, gdy pojawi się ikona Snackbar.

Wyświetl wiadomość

Aby wyświetlić wiadomość, musisz wykonać 2 czynności. Najpierw tworzysz Snackbar obiekt z tekstem wiadomości. Następnie wywołujesz ten obiekt show() .

Tworzenie obiektu Snackbar

Utwórz obiekt Snackbar, wywołując statyczny Snackbar.make() . Podczas tworzenia Snackbar określ wiadomość oraz czas wyświetlania wiadomości:

Kotlin

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

Java

Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
wyświetl
Widok, do którego chcesz dołączyć element Snackbar. Metoda przeszukuje wyświetlania hierarchii z przekazywanego widoku aż do osiągnięcia CoordinatorLayout lub widok treści dekoracji okna. Zwykle prościej jest przesłać CoordinatorLayout które otacza treść.
Identyfikator ciągu
Identyfikator zasobu wiadomości, którą chcesz wyświetlić. Możesz go sformatować lub niesformatowany tekst.
czas trwania
Czas wyświetlania wiadomości. Może to być LENGTH_SHORT lub LENGTH_LONG

Pokaż wiadomość użytkownikowi

Po utworzeniu Snackbar nadaj mu nazwę show() aby wyświetlić Snackbar użytkownikowi:

Kotlin

mySnackbar.show()

Java

mySnackbar.show();

System nie wyświetla jednocześnie wielu obiektów Snackbar więc jeśli w widoku jest obecnie wyświetlany inny Snackbar, parametr system umieści Snackbar w kolejce i wyświetli go po zakończeniu bieżącego Aplikacja Snackbar wygasa lub została odrzucona.

Jeśli chcesz wyświetlić wiadomość użytkownikowi i nie musisz wywoływać żadnego Snackbar, nie musisz przechowywać odniesienia do Snackbar po wywołaniu show(). Dla: dlatego często używa się łańcuchów metod do tworzenia i wyświetlania Snackbar w jednym wyciągu:

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();