Snackbar的使用

Snackbar的使用_第1张图片

参考

Snackbars 与 Toasts
放弃Toast吧,用Snackbar
Snackbar样式
Snackbar源码分析

介绍

Snackbar的使用_第2张图片
image

Snackbar 是一种针对操作的轻量级反馈机制,常以一个小的弹出框的形式,出现在手机屏幕下方或者桌面左下方。它们出现在屏幕所有层的最上方,包括浮动操作按钮。

它们会在超时或者用户在屏幕其他地方触摸之后自动消失。Snackbar 可以在屏幕上滑动关闭。当它们出现时,不会阻碍用户在屏幕上的输入,并且也不支持输入。屏幕上同时最多只能现实一个 Snackbar。

方法

创建

make(view,text,duration)

  • 第一个参数是一个view,Snackbar 会沿着 view 的树状路径,找到第一个合适的布局或窗口视图,如CoordinatorLayout,作为父 view,以寄存所赋的 snackbar 值。
  • 第二个参数是显示的文本,可以是资源索引也可以是字符串
  • 第三个参数是显示时间。

设置操作按钮

setAction(text, listener)

显示

show()

Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null)
                        .show();
Snackbar的使用_第3张图片

设置样式

设置背景色

背景色是通过getView方法获取Snackbar的核心视图,然后就可以在对它设置任意背景色了。

Snackbar snackbar = Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null);
snackbar.getView().setBackgroundColor(red);
snackbar.show();
Snackbar的使用_第4张图片

设置字体颜色

前面我们已经知道设置背景色的方法,字体颜色也是大同小异获取Snackbar的核心视图后我们知道SnackBar两个TextView的id分别是snackbar_textsnackbar_action,只需要对这两个TextView设置颜色即可。

Snackbar snackbar = Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null);
((TextView)snackbar.getView().findViewById(R.id.snackbar_text)).setTextColor(red);
snackbar.show();
Snackbar的使用_第5张图片

注意

只有CoordinatorLayout + FloatingActionButton 显示Snackbar的时候FloatingActionButton位置会往上移,且需要CoordinatorLayout是FloatingActionButton和Snackbar共同的父View。

你可能感兴趣的:(Snackbar的使用)