可交互提示Snackbar
Snackbar也是Design Support库提供的工具,它是一种提示工具,但它并不是Toast的替代品,两者有着不同的应用场景。Snackbar在Toast的基础上扩展,在告诉用户现在发生了什么事情的同时,还提供了一个可交互按钮,当用户点击按钮时可以执行一些额外的逻辑操作。例如删除数据时,弹出Snackbar可以提供一个Undo按钮,从而防止用户的误操作。
1.在app/build.gradle中添加design库的依赖
implementation 'com.android.support:design:27.1.1'
2.弹出可交互提示,通过setAction()方法设置可交互按钮的文本以及点击事件监听
public void onClick(View v) {
Snackbar.make(v,"Data deleted",Snackbar.LENGTH_SHORT).setAction("Undo", new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"Data restored",Toast.LENGTH_SHORT).show();
}
}).show();
}
可以看到,这里调用了Snackbar的make()方法创建一个Snackbar对象,其中第一个参数View只要是当前界面布局的任意一个View都可以,Snackbar会使用这个View来自动查找最外层的布局,用于展示Snackbar。