Сьогодні поговоримо про компонент з Android design support library під назвою “Snackbar”.
Snackbar - логічний фінал Toast
“Providing lightweight, quick feedback about an operation is a perfect opportunity to use a snackbar.”Snackbar компонент доступний в design support library. Використовуючи Snackbar, ми можемо показувати швидкі повідомлення в нижній частині екрану (в осносному). Даний компонент дуже схожий на Toast, але більш гнучкий:
- Він автоматично зникає після таймауту чи після взаємодії з користувачем.
- Опціонально містить в собі дію.
- Можна відмінти FAB свайпом з екрану.
- На відміну від Toast перекриває екран, а не накладається
- Являється частиною UI та є контексозалежним.
- Тільки один snackbar може відображатися в один проміжок часу.
Синтаксис:
Поглянемо на маленький приклад:Snackbar.make(view, message, duration) .setAction(action message, click listener) .show(); |
make()
– Змусити Snackbar відображати повідомлення;setAction()
– Налаштувати дію;show()
– Показати Snackbar;
- Перший параметр методу make() це view, snackbar спробує знайти батьківський view для утримання snackbar. Snackbar прогляне все дерево шарів і закріпиться на верхньому.
- Як вже згадувалось раніше, аргумент тривалості такий же як і в Toast, але тільки LENGTH_SHORT чи LENGTH_LONG, так тут не можна явно вказати тривалість.
Приклад:
Snackbar.make(rootlayout, "Hello SnackBar!" , Snackbar.LENGTH_SHORT) .setAction( "Undo" , new View.OnClickListener() { @Override public void onClick(View v) { // Perform anything for the action selected } }) .show(); |
Тут, кореневий шар (layout) framelayout має FAB, який в свою чергу викликає
Snackbar
.Натисніть на FAB та перевірте результат:
Так, все працює але на жаль не так як мало б взаємодіяти з UX. Насправді снекбар мав би зсунути FAB трох вверх, як зображено нижче, а також сказано в документації:
Having a CoordinatorLayout in your view hierarchy allows Snackbar to enable certain features, such as swipe-to-dismiss and automatically moving of widgets like FloatingActionButton.Ми поговоримо про CoordinatorLayout в наступній статті.
Налаштування Snackbar
Ми можемо використовувати деякі додаткові налаштування в snackbar наприклад:setActionTextColor
та setDuration
:Snackbar.make(rootlayout, "Hello SnackBar!" , Snackbar.LENGTH_SHORT) .setAction( "Undo" , new View.OnClickListener() { @Override public void onClick(View v) { // Perform anything for the action selected } }) .setActionTextColor(R.color.material_blue) .setDuration( 4000 ).show(); |
Джерела:
Підсумкт
Ми трохи поговорили про Snackbar, що функціонує подібно до TOAST але з більш ширшими та гнучкішими налаштуваннями, він може також вміщувати в собі єдину дію та бути відхиленим простим свайпом з екрану або автоматично після закінчення виділеного інтервалу часу, чи навіть після взаємодії з користувачем.Ми безумовно побачимо більше ефектів та поведінки завдяки підключенню CoordinatorLayout, але це буде в наступній статті.
source
Комментариев нет:
Отправить комментарий