SnackBar是可交互提示,用法与Toast类似,只不过可以额外增加一个按钮点击事件。
效果图如下:
因为布局文件就是一个按钮,我就不写了,直接看java代码部分,代码如下:
public class MainActivity extends AppCompatActivity {
private Button btn_del;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_del = findViewById(R.id.btn_del);
btn_del.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Snackbar.make(v, "删除数据", Snackbar.LENGTH_SHORT)
.setAction("取消", new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "数据恢复成功", Toast.LENGTH_SHORT).show();
}
}).show();
}
});
}
}
我们直接看按钮的点击事件,可以看到这里SnackBar调用make()方法来创建一个SnackBar对象,make()方法的第一个参数需要传一个View,只要当前界面的任意一个View都可以,Snack会使用View来自动查找最外层的布局,用于显示SnackView,第二个参数是内容,第三个参数是时长。
接着调用一个setAction()方法来设置一个动作,从而可以和用户进行交互。