您好 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,在该系列文章中后续会讨论它。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值