Вы можете использовать Snackbar
для отображения краткого сообщения пользователю. В отличие от уведомлений , сообщение автоматически исчезает через короткое время. Snackbar
идеально подходит для коротких сообщений, которые пользователю не нужно выполнять. Например, приложение электронной почты может использовать Snackbar
чтобы сообщить пользователю, что приложение успешно отправило электронное письмо.
Используйте координаторлайаут
К представлению прикреплена Snackbar
. Snackbar
обеспечивает базовую функциональность, если он прикреплен к любому объекту, производному от класса View
, например к любому из общих объектов макета. Однако если Snackbar
прикреплен к CoordinatorLayout
, Snackbar
получает дополнительные функции:
- Пользователь может закрыть
Snackbar
, проведя по нему пальцем. - Макет перемещает другие элементы пользовательского интерфейса при появлении
Snackbar
. Например, если в макете естьFloatingActionButton
, макет перемещает кнопку вверх, когда отображаетсяSnackbar
, вместо того, чтобы рисоватьSnackbar
поверх кнопки. Вы можете увидеть, как это выглядит на рисунке 1.
Класс CoordinatorLayout
предоставляет расширенный набор функций FrameLayout
. Если ваше приложение уже использует FrameLayout
, вы можете заменить этот макет CoordinatorLayout
, чтобы включить полную функциональность Snackbar
. Если ваше приложение использует другие объекты макета, оберните существующие элементы макета в CoordinatorLayout
, как показано в следующем примере:
<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>
Установите тег android:id
для вашего CoordinatorLayout
. При отображении сообщения вам понадобится идентификатор макета.
Рисунок 1. CoordinatorLayout
перемещает FloatingActionButton
вверх при появлении Snackbar
.
Отображение сообщения
Отображение сообщения состоит из двух шагов. Сначала вы создаете объект Snackbar
с текстом сообщения. Затем вы вызываете метод show()
этого объекта, чтобы отобразить сообщение пользователю.
Создайте объект Snackbar
Создайте объект Snackbar
, вызвав статический метод Snackbar.make()
. При создании Snackbar
укажите отображаемое сообщение и продолжительность его отображения:
Котлин
val mySnackbar = Snackbar.make(view, stringId, duration)
Ява
Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
- вид
- Представление, к которому можно прикрепить
Snackbar
. Метод выполняет поиск вверх по иерархии представлений от переданного представления до тех пор, пока не достигнетCoordinatorLayout
или представления содержимого декора окна. Обычно проще передатьCoordinatorLayout
, включающий ваш контент. - идентификатор строки
- Идентификатор ресурса сообщения, которое вы хотите отобразить. Это может быть форматированный или неформатированный текст.
- продолжительность
- Время отображения сообщения. Это может быть
LENGTH_SHORT
илиLENGTH_LONG
.
Показать сообщение пользователю
После создания Snackbar
вызовите его метод show()
чтобы отобразить Snackbar
пользователю:
Котлин
mySnackbar.show()
Ява
mySnackbar.show();
Система не отображает несколько объектов Snackbar
одновременно, поэтому, если в представлении в данный момент отображается другой Snackbar
, система ставит ваш Snackbar
в очередь и отображает его после истечения срока действия текущего Snackbar
или его закрытия.
Если вы хотите показать сообщение пользователю и вам не нужно вызывать какие-либо служебные методы объекта Snackbar
, вам не нужно сохранять ссылку на Snackbar
после вызова show()
. По этой причине для создания и отображения Snackbar
принято использовать цепочку методов в одном операторе:
Котлин
Snackbar.make( findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT ).show()
Ява
Snackbar.make(findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT) .show();
Вы можете использовать Snackbar
для отображения краткого сообщения пользователю. В отличие от уведомлений , сообщение автоматически исчезает через короткое время. Snackbar
идеально подходит для коротких сообщений, которые пользователю не нужно выполнять. Например, приложение электронной почты может использовать Snackbar
чтобы сообщить пользователю, что приложение успешно отправило электронное письмо.
Используйте координаторлайаут
К представлению прикреплена Snackbar
. Snackbar
обеспечивает базовую функциональность, если он прикреплен к любому объекту, производному от класса View
, например к любому из общих объектов макета. Однако если Snackbar
прикреплен к CoordinatorLayout
, Snackbar
получает дополнительные функции:
- Пользователь может закрыть
Snackbar
, проведя по нему пальцем. - Макет перемещает другие элементы пользовательского интерфейса при появлении
Snackbar
. Например, если в макете естьFloatingActionButton
, макет перемещает кнопку вверх, когда отображаетсяSnackbar
, вместо того, чтобы рисоватьSnackbar
поверх кнопки. Вы можете увидеть, как это выглядит на рисунке 1.
Класс CoordinatorLayout
предоставляет расширенный набор функций FrameLayout
. Если ваше приложение уже использует FrameLayout
, вы можете заменить этот макет CoordinatorLayout
, чтобы включить полную функциональность Snackbar
. Если ваше приложение использует другие объекты макета, оберните существующие элементы макета в CoordinatorLayout
, как показано в следующем примере:
<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>
Установите тег android:id
для вашего CoordinatorLayout
. При отображении сообщения вам понадобится идентификатор макета.
Рисунок 1. CoordinatorLayout
перемещает FloatingActionButton
вверх при появлении Snackbar
.
Отображение сообщения
Отображение сообщения состоит из двух шагов. Сначала вы создаете объект Snackbar
с текстом сообщения. Затем вы вызываете метод show()
этого объекта, чтобы отобразить сообщение пользователю.
Создайте объект Snackbar
Создайте объект Snackbar
, вызвав статический метод Snackbar.make()
. При создании Snackbar
укажите отображаемое сообщение и продолжительность его отображения:
Котлин
val mySnackbar = Snackbar.make(view, stringId, duration)
Ява
Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
- вид
- Представление, к которому можно прикрепить
Snackbar
. Метод выполняет поиск вверх по иерархии представлений от переданного представления до тех пор, пока не достигнетCoordinatorLayout
или представления содержимого декора окна. Обычно проще передатьCoordinatorLayout
, включающий ваш контент. - идентификатор строки
- Идентификатор ресурса сообщения, которое вы хотите отобразить. Это может быть форматированный или неформатированный текст.
- продолжительность
- Время отображения сообщения. Это может быть
LENGTH_SHORT
илиLENGTH_LONG
.
Показать сообщение пользователю
После создания Snackbar
вызовите его метод show()
чтобы отобразить Snackbar
пользователю:
Котлин
mySnackbar.show()
Ява
mySnackbar.show();
Система не отображает несколько объектов Snackbar
одновременно, поэтому, если в представлении в данный момент отображается другой Snackbar
, система ставит ваш Snackbar
в очередь и отображает его после истечения срока действия текущего Snackbar
или его закрытия.
Если вы хотите показать сообщение пользователю и вам не нужно вызывать какие-либо служебные методы объекта Snackbar
, вам не нужно сохранять ссылку на Snackbar
после вызова show()
. По этой причине для создания и отображения Snackbar
принято использовать цепочку методов в одном операторе:
Котлин
Snackbar.make( findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT ).show()
Ява
Snackbar.make(findViewById(R.id.myCoordinatorLayout), R.string.email_sent, Snackbar.LENGTH_SHORT) .show();