Snackbar Toast

官方文档中文翻译地址:https://github.com/1sters/material_design_zh/blob/master/SOURCE/components/snackbars-and-toasts.md

Snackbar 是一种针对操作的轻量级反馈机制,常以一个小的弹出框的形式,出现在手机屏幕下方或者桌面左下方。它们出现在屏幕所有层的最上方,包括浮动操作按钮。它们会在超时或者用户在屏幕其他地方触摸之后自动消失。Snackbar 可以在屏幕上滑动关闭。当它们出现时,不会阻碍用户在屏幕上的输入,并且也不支持输入。屏幕上同时最多只能现实一个 Snackbar。

Android 也提供了一种主要用于提示系统消息的胶囊状的提示框 Toast。Toast 同 Snackbar 非常相似,但是 Toast 并不包含操作也不能从屏幕上滑动关闭。

手机端 Snackbar 规格

  • 单行 Snackbar 高度:48 dp
  • 多行 Snackbar 高度:80 dp
  • 文本:Roboto Regular 14 sp
  • 操作按钮:Roboto Medium 14 sp, 大写文本
  • 默认背景填充色:#323232 100%

Snackbar是Android Support Design Library库中的一个控件,可以在屏幕底部快速弹出消息,比Toast更加好用,官方推荐使用Snackbar代替Toast。

Snackbar显示在所有屏幕其它元素之上(屏幕最顶层),同一时间只能显示一个,当上一个还没显示完时调用show方法,会把上一个消失掉,直接显示最新的。

Snackbar的make方法的第一个参数是一个view,任何一个view都可以,但是官方推荐使用CoordinatorLayout,有两个好处:

  • 1、用户可以右滑消除掉snackbar
  • 2、当snackbar出现的时候,布局会移动一些UI元素,比如右下角的悬浮按钮会自动上移

view不一定直接就是CoordinatorLayout,该方法触发的时候,会一级一级的向上找,如果找到顶层还没找到就是没有,所以,还是建议直接使用CoordinatorLayout来当做这个参数,而不用系统浪费力气去找。

如果你的布局已经写好了,没有CoordinatorLayout,那么可以在最外面一层镶嵌上CoordinatorLayout,CoordinatorLayout就是相当于一个超级FrameLayout。

显示时间duration有三种类型LENGTH_SHORT、LENGTH_LONG和LENGTH_INDEFINITE。

setAction()方法可设置Snackbar右侧按钮,增加进行交互事件。如果不使用setAction()则只显示左侧message。

如果你想在Snackbar的显示时或消失时做些什么,可以调用Snackbar的setCallback方法(废弃了)。

  1. public class MainActivity extends ListActivity {
  2. protected void onCreate(Bundle savedInstanceState) {
  3. super.onCreate(savedInstanceState);
  4. String[] array = {"默认样式,SHORT", //
  5. "默认样式,LONG", //
  6. "点击事件,setAction", //
  7. "设置Snackbar的文字和背景颜色",};
  8. setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new ArrayList<String>(Arrays.asList(array))));
  9. }
  10. @Override
  11. protected void onListItemClick(ListView l, View view, int position, long id) {
  12. switch (position) {
  13. case 0:
  14. Snackbar.make(view, "默认样式的Snackbar", Snackbar.LENGTH_SHORT).show();
  15. break;
  16. case 1:
  17. Snackbar.make(view, "默认样式的Snackbar默认样式的Snackbar默认样式的Snackbar", Snackbar.LENGTH_LONG).show();
  18. break;
  19. case 2:
  20. Snackbar.make(view, "点击事件", Snackbar.LENGTH_LONG)
  21. .setAction("点击", new View.OnClickListener() {
  22. @Override
  23. public void onClick(View v) {
  24. Toast.makeText(MainActivity.this, "点击事件", Toast.LENGTH_SHORT).show();
  25. }
  26. })
  27. .setActionTextColor(0xffff0000)//设置右侧文字的颜色
  28. .show();
  29. break;
  30. case 3:
  31. Snackbar snackbar = Snackbar.make(view, "设置Snackbar的文字和背景颜色", Snackbar.LENGTH_LONG);
  32. snackbar.getView().setBackgroundColor(0xff0000ff);//设置Snackbar背景颜色
  33. ((TextView) snackbar.getView().findViewById(R.id.snackbar_text)).setTextColor(0xffff0000);//设置Snackbar文字颜色
  34. snackbar.show();
  35. break;
  36. }
  37. }
  38. }

2017-5-22

null

时间: 2024-10-16 19:59:22

Snackbar Toast的相关文章

轻量级控件SnackBar应用&amp;源码分析

前言 SnackBar是Android Support Design Library库支持的一个控件,它在使用的时候经常和CoordinatorLayout一起使用,它是介于Toast和Dialog之间的产物,属于轻量级控件很方便的提供提示和动作反馈,有时候我们需要这样的控件,和Toast一样显示便可以消失,又想这个消息提示上进行用户的反馈.然而写Dialog只能通过点击去取消它,所以SnackBar的出现更加让界面优雅. Part 1.SnackBar的常规使用 Snackbar snackb

Snackbar使用详解及其相关框架TSnackbar

简述: Snackbar 是 Android design support library 中的一个组件,它的作用和Toast类似,显示吐司,但Snackbar的特别之处在于Snackbar显示的提示信息可以和用户交互,更好地获取用户反馈信息.同时,它显示的吐司带有动画效果,从屏幕下方慢慢展开显示. Goggle官方这样介绍:"SnackBars提供了一个轻量级的反馈操作.他们在屏幕的底部显示一条简短的信息,如果是较大的设备就显示在左下角.SnackBar出现在屏幕中所有其他元素的上方,同一时间

【Android - MD】之Snackbar的使用

Snackbar 是 Android 5.0 新特性--Material Design 中的一个控件,用来代替 Toast ,Snackbar与Toast的主要区别是:Snackbar可以滑动退出,也可以处理用户交互(点击)事件. Snackbar的特点如下: Snackbar会在超时或者用户在屏幕其他地方触摸之后自动消失 可以在屏幕上滑动关闭 出现时不会阻碍用户在屏幕上的输入 不支持输入 屏幕上同时最多只能显示一个Snackbar 如果在屏幕上有一个Snackbar的情况下再显示一个Snack

Android Design Support Library--简约而不简单的SnackBar

引言 在之前我有提到这一篇Android Design Support Library系列文章是关于SnackBar的,但是由于要用到CoordinatorLayout所以先翻译了一篇相关文章,如果还不了解的可以先看一下Android Design Support Library–使用CoordinatorLayout来处理滚动 ,这一篇我们讲SnackBar,SnackBar其实就是Toast的升级版,他们之间最大的不同就是:SnackBar会对我们的操作提供一个轻量级的反馈,并且可以对点击事

Snackbar新版Toast 从源码角度完全解析

我们将会从一下几个角度了解Snackbar. 1.什么是Snackbar 2.如何使用Snackbar 3.有哪些常用的API 4.从源码角度分析其实现 5.总结 1.什么是Snackbar Snackbar是一个轻量级的用户操作反馈工具,类似于Toast,但是比Toast更美观和实用,当你操作它的时候,Snackbar会置顶显示一个一定时间的简要的信息在屏幕的底部,并且它还可以添加事件. 2.如何使用Snackbar Snackbar .make(parentLayout, R.string.

Android.对话框(AlertDialog/Toast/Snackbar)

1.资料: 1.1.Android提醒微技巧,你真的了解Dialog.Toast和Snackbar吗? - CSDN博客.html(https://blog.csdn.net/guolin_blog/article/details/51336415) 1.2.Android界面设计之对话框--定制Toast.AlertDialog - 杰瑞教育 - 博客园.html(https://www.cnblogs.com/jerehedu/p/4308718.html) 2. 3. 4. 5. 原文地址

Android开发学习之路-SnackBar使用心得

SnackBar是DesignSupportLibrary中的一个重要的控件,用于在界面下面提示一些关键信息,跟Toast不同的地方是SnackBar允许用户向右滑动消除它,同时,也允许在SnackBar中设定一个Action,当用户点击了SnackBar里面的按钮的时候,可以进行一些操作,所以,功能绝对是很强大的. SnackBar的构造: // 参数分别是父容器,提示信息,持续时间public static Snackbar make(@NonNull View view, @NonNull

安卓Design包之超强控件CoordinatorLayout与SnackBar的简单使用

在前面的Design中,学习使用了TabLayout,NavigationView与DrawerLayout实现的神奇效果,今天就带来本次Design包中我认为最有意义的控件CoordinatorLayout. 当然还有SnackBar,不过他在实际运用中一般都是和CoordinatorLayout搭配使用的. 先说下SnackBar,这个控件其实我觉得和Toast没什么差别,不过功能上的确有增强.这个控件可以通过setAction方法设置类似按钮一样的东西.而且这个东西可以设置多个. 重点还是

Material Design: NavigationView FlaotingActionBar SnackBar采用

转载 请明确说明 MingsangAndroid 本文介绍了Design Support Library的引入 拥抱Android Design Support Library新变化(导航视图.悬浮ActionBar..).今天则重点介绍当中三个控件:NavigationView和 FloatingActionBar以及 SnackBar的基本使用方法. 本文代码地址:DesignSupportDemo 为了便于各位练习,这是代码中会用到的全部图片素材 图片素材.zip 作为三者的综合练习,我们