Toast用于告知用户发生了什么,但不与用户交互
Snackbar在Toast的基础上,在提示中加入了一个可交互按钮
Snackbar.make(v,"To Top?",Snackbar.LENGTH_SHORT)
.setAction("Yes",new View.OnClickListener(){
@Override
public void onClick(View v){
Toast.makeText(MainActivity.this,"to top",
Toast.LENGTH_SHORT).show();
}
}).show();
make的第一个参数View:传入当前界面布局的任意一个view即可,snackbar使用这个view来自动查找最外层的布局,用于展示snackbar
setAction()设置一个动作
snackbar是在屏幕下方弹出的,此时会遮挡住屏幕下方的控件,但项悬浮按钮是不应该被遮挡的,应该随着snackbar的弹出向上偏移
这就要用的CoordinatorLayout布局,该布局是FrameLayout的加强版,可以监听其所有子控件的各种事件,然后自动做出合理相应
比如CoordinatorLayout监听到Snackbar的弹出事件(将第一个参数设为CoordinatorLayout的子控件),那么它会自动将内部的FloatingActionButton向上偏移,从而确保不会被遮挡