安卓高级6 SnackBar

引言
文/李牧羊(简书作者)
原文链接:
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者” 。
在之前我有提到这一篇系列文章是关于的,但是由于要用到所以先翻译了一篇相关文章,如果还不了解的可以先看一下--使用来处理滚动,这一篇我们讲,其实就是Toast的升级版,他们之间最大的不同就是:会对我们的操作提供一个轻量级的反馈,并且可以对点击事件做出响应,如果是在手机上使用一个的话,我们会看到在屏幕底部出现一条简短的信息,如果是在更大的屏幕上这条信息应该会显示在左下角,并且当一个显示的时候它是凌驾于当前所有屏幕元素之上的,我们在屏幕上一次只能显示一个,如果这么讲不是很清楚的话,我们先来看一个小Demo,通过代码驱动理解是比较好的方式 。
示例
根据的特点,在屏幕上显示出不同的,效果如下:

安卓高级6 SnackBar

文章插图
这里写图片描述
先看一下相关的API文档:
方法类型方法作用
void
()
使消失
int
()
返回的持续时间
View
()
返回当前的View
()
判断该是否正在显示
()
判断该是否正在显示或者排队等待即将要显示
make(View view, int resId, int )
新建一个用来显示信息的
make(View view,text, int )
同上
(int resId, View. )
设置这个即将显示的的动作
( text, View. )
同上
( )
设置的文字颜色(右边的)
(int color)
同上
(. )
设置一个回调,当的可见性改变的时候调用
(int )
设置信息的显示时间
(int resId)
更新上显示的文字
( )
同上
void
show()
显示,最后一定要调用这个方法,不然不显示,联想Toast
可以看到Demo上显示了三种不同的,我们都知道是Toast的升级版,但也说明了一个问题那就是是用来显示消息的,同时根据你的需求不同可以对这些消息做出一定的响应动作,下面分析三种显示消息方式的不同: - 普通的也许有的人并没有过多的需求,只是单纯地想把当作一个显示消息的控件而已,那么可以很简单的在代码中这么使用:
Snackbar.make(mCoor, R.string.normal, Snackbar.LENGTH_SHORT).show();
对比一下我们的Toast方式:
Toast.makeText(MainActivity.this,R.string.normal,Toast.LENGTH_SHORT).show();
是不是很像,没错简单的使用的话跟Toast并没有多大区别,但是动画效果上是有差异的,如果你注意到了这一点:
安卓高级6 SnackBar

文章插图
这里写图片描述
看,这个侧边滑动消失的效果只有当你使用作为根布局才有,这就是为什么在写之前我要先说明一下的原因,如果你使用普通的或者是不会有这种动画交互效果的,另外,注意的make方法有两种重载方法,分别是:
make(View view, int resId, int duration)

make(View view, CharSequence text, int duration)
这里有三个参数,第一个参数View表示的意思是我们传入一个View,然后会遍历整个View Tree来找到一个合适的View承载的View,如果你想要实现上面的动画交互效果的话最好是传入对象,第二个参数的话是两个重载方法不同的地方,有一种是我们熟知的: