您好 Snackbar, 再见Toast
2016-02-23 12:34
239 查看
原文地址 Part 2 – Welcome Snackbar, Goodbye Toast!
欢迎来到Android design support library 系列之旅的第二部分,在第一部分中,我门讨论了 Floating action button 以及它的属性和一些FAB的问题。
今天我们来讨论另外一个组件”Snackbar”
Snackbar 是 design support library的另外一个组件,通过使用它,我们能够在屏幕的底部(大多数时候)快速的弹出消息,它跟Toast很相似,但是又更加的灵活:
- 在一定的时间后会或者用户与屏幕交互后,会自动的消失。
- 可以自定义操作,可选操作。
- 我们可以将Snackbar滑出屏幕来让其消失
- 它是一个对上下文敏感的消息,所以这些消息是UI screen 的部分并且出现在屏幕其他所有元素之上,不像Toast消息一样覆盖在屏幕上。
- 同时只能够显示一个snackbar
Snackbar 继承来Toast大部分的方法和属性,例如设置时长的 LENGTH_LONG 和 LENGTH_SHORT 属性。
setAction() - 设置一个动作
show() - 显示一个Snackbar
正如前面提到的,duration是一个类似于Toast duration的参数,你能够使用LENGTH_LONG 或者 LENGTH_SHORT
例子:
在这里,rootlayout是一个framelayout 它里面有一个FAB, 可以看看FAB例子的layout
点击FAB 查看结果
![](http://www.technotalkative.com/wp-content/uploads/2015/06/Snackbar-framelayout1.gif)
是的,它成功了,但是用户体验却不好,FAB应该往上移一点,这如下面文档说明的:
当有一个CoordinatorLayout在你的布局中时,应该允许Snackbar有一些特征,例如滑动消失,或者能够自动移动一些像FloatingActionButton这样的控件。
我们将在系列的下一个部分讨论有关于CoordinatorLayout。
![](http://www.technotalkative.com/wp-content/uploads/2015/06/Snackbar-with-CoordinatorLayout1.gif)
你能从 https://github.com/PareshMayani/DesignSupportLibraryExamples 上下载到上面的例子
参考文章:
- https://developer.android.com/reference/android/support/design/widget/Snackbar.html
通过 CoordinatorLayout我们可以看到更多的effects 和 behaviours,在该系列文章中后续会讨论它。
欢迎来到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 查看结果
![](http://www.technotalkative.com/wp-content/uploads/2015/06/Snackbar-framelayout1.gif)
是的,它成功了,但是用户体验却不好,FAB应该往上移一点,这如下面文档说明的:
当有一个CoordinatorLayout在你的布局中时,应该允许Snackbar有一些特征,例如滑动消失,或者能够自动移动一些像FloatingActionButton这样的控件。
我们将在系列的下一个部分讨论有关于CoordinatorLayout。
![](http://www.technotalkative.com/wp-content/uploads/2015/06/Snackbar-with-CoordinatorLayout1.gif)
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,在该系列文章中后续会讨论它。
相关文章推荐
- ios海哥开发笔记 (海哥原创,C语言之堆栈入门——堆和栈的区别 )
- MySQL注释中的sql也可能执行
- java反射机制详解
- 安卓应用运行、卸载、清除数据、强制停止
- SmartBusinessDevFramework架构设计-3:考虑开源?
- 如何写出好的C代码
- iOS海哥开发笔记 (海哥原创,C语言之内存四区模型和函数调用模型)
- iOS软件安装图文教程(免证书)
- JAVA锁漫谈,最好的锁是无锁
- IOS系列——NStimer
- Ubuntu+Apache+PHP+Mysql环境搭建
- Vim命令笔记
- 程序员面试题精选100题(32)-不能被继承的类[C/C++/C#]
- dns服务器未响应怎么解决
- SQL常用语句
- php析构方法关于栈的问题
- 程序员面试题精选100题(31)-从尾到头输出链表[数据结构]
- Emulation currently requires hardware acceleration
- IOS比较常用的第三方组件及应用源代码(持续更新中)
- iOS海哥开发笔记 (海哥原创,NSCharacterSet 简单用法)