您好 Snackbar, 再見Toast

原文地址 Part 2 – Welcome Snackbar, Goodbye Toast!

歡迎來到Android design support library 系列之旅的第二部分,在第一部分中,我門討論了 Floating action button 以及它的屬性和一些FAB的問題。

今天我們來討論另外一個組件”Snackbar”

您好 Snackbar, 再見Toast

Snackbar,它是一個輕量級,快速的操作反饋,這是一個完美的機會去使用它。

Snackbar 是 design support library的另外一個組件,通過使用它,我們能夠在屏幕的底部(大多數時候)快速的彈出消息,它跟Toast很相似,但是又更加的靈活:
- 在一定的時間後會或者用戶與屏幕交互後,會自動的消失。
- 可以自定義操作,可選操作。
- 我們可以將Snackbar滑出屏幕來讓其消失
- 它是一個對上下文敏感的消息,所以這些消息是UI screen 的部分並且出現在屏幕其他所有元素之上,不像Toast消息一樣覆蓋在屏幕上。
- 同時只能夠顯示一個snackbar

Snackbar 繼承來Toast大部分的方法和屬性,例如設置時長的 LENGTH_LONG 和 LENGTH_SHORT 屬性。

如何使用

讓我們看看snackbar是如何使用的:

Snackbar.make(view, message, duration)
       .setAction(action message, click listener)
       .show();

成員方法:

  • make() - 創建一個Snackbar來顯示消息
  • setAction() - 設置一個動作
  • show() - 顯示一個Snackbar

屬性:

  • make() 方法的第一個參數是view, snackbar 將嘗試從給定參數的 view 去查找一個父view來持用 snackbar的視圖,它將會遍歷整個view的數,去找到到一個合適的parent,它可能是一個coordinatorLayout或者window decor的content view 哪一個先出來就哪個。
  • 正如前面提到的,duration是一個類似於Toast duration的參數,你能夠使用LENGTH_LONG 或者 LENGTH_SHORT

例子:

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

在這裏,rootlayout是一個framelayout 它裏面有一個FAB, 可以看看FAB例子的layout

點擊FAB 查看結果

是的,它成功了,但是用戶體驗卻不好,FAB應該往上移一點,這如下面文檔說明的:

當有一個CoordinatorLayout在你的佈局中時,應該允許Snackbar有一些特徵,例如滑動消失,或者能夠自動移動一些像FloatingActionButton這樣的控件。

我們將在系列的下一個部分討論有關於CoordinatorLayout。

Snackbar的可選配置

我們可以使用snackbar的一些額外的配置,setActionTextColorsetDuration

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

你能從 https://github.com/PareshMayani/DesignSupportLibraryExamples 上下載到上面的例子

參考文章:
- https://developer.android.com/reference/android/support/design/widget/Snackbar.html

總結

在這個部分,我們討論了Snackbar,跟Toast消息很類似,但是又更加的靈活了,Snackbar中可以自定義動作,可以將Snackbar滑出屏幕來讓其消失並且在一定的時間後會或者用戶與屏幕交互後,會自動的消失

通過 CoordinatorLayout我們可以看到更多的effects 和 behaviours,在該系列文章中後續會討論它。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章