您的位置:首页 > 其它

您好 Snackbar, 再见Toast

2016-02-23 12:34 239 查看
原文地址 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的一些额外的配置,
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();


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

参考文章:

- https://developer.android.com/reference/android/support/design/widget/Snackbar.html

总结

在这个部分,我们讨论了Snackbar,跟Toast消息很类似,但是又更加的灵活了,Snackbar中可以自定义动作,可以将Snackbar滑出屏幕来让其消失并且在一定的时间后会或者用户与屏幕交互后,会自动的消失

通过 CoordinatorLayout我们可以看到更多的effects 和 behaviours,在该系列文章中后续会讨论它。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: