从Android Support Library 22.2.0开始提供的这个控件。
和Toast效果类似,本篇只介绍使用方法。
#### 引入
在使用之前,需要先引入com.android.support:design:x.x.x,版本号根据自己需要修改。比如我的
~~~
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
compile 'com.android.support:design:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
~~~
#### 常用方式
~~~
Snackbar.make(view, "就是显示一行文本,和Toast差不多", Snackbar.LENGTH_SHORT).show();
~~~
第一个参数是view,哪个都行,比如把跟布局设置一个id,然后得到一个view。
#### 添加点击事件
~~~
Snackbar.make(view, "这里是一个长长长长长长长长长长长长长长长长的文本", Snackbar.LENGTH_SHORT)
.setActionTextColor(Color.WHITE) //可以不设置颜色,默认是红色的
.setAction("可以点击的文本内容", new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "toast提示", Toast.LENGTH_SHORT).show();
}
}) .show();
~~~
在提示文字后面,有个简短文本,点击后触发事件,比如有个删除操作,可以在短时间内撤回,就需要这种场景。
默认情况下可以点击的文字是红色的,可以修改颜色。
提示文字比较长的时候,看起来不是那么协调。
#### 添加回调事件
~~~
Snackbar.make(view, "正文", Snackbar.LENGTH_SHORT)
.setActionTextColor(Color.WHITE)
.addCallback(new Snackbar.Callback() {
@Override
public void onDismissed(Snackbar snackbar, int event) {
super.onDismissed(snackbar, event);
Toast.makeText(MainActivity.this, "消失回调", Toast.LENGTH_SHORT).show();
}
@Override
public void onShown(Snackbar snackbar) {
super.onShown(snackbar);
Toast.makeText(MainActivity.this, "显示回调", Toast.LENGTH_SHORT).show();
}
})
.setAction("点击这个能弹出toast", new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "Toast", Toast.LENGTH_SHORT).show();
}
}) .show();
~~~
使用场景,比如用户完成了一个操作,给出了友好提示,提示结束之后呢就需要跳转到新的页面,这时候就需要有个提示层消失之后的触发。
其中addCallback方法和removeCallback对应,一个添加一个移除。旧版本的setCallback已经过时。
其他简单使用可以点击[这里](http://android.jobbole.com/83726/)。