Snackbar
Snackbar是谷歌的一个类似于dialog、Toast的通知用户方式,需与CoordinatorLayout配套使用。
使用方法:
①在activity中实例化CoordinatorLayout,这很重要,缺少实例化直接使用Snackbar,会报错null object。
②Snackbar的使用格式和Toast很类似,如下对比
Toast.makeText(this, "toast_text", Toast.LENGTH_SHORT).show();
Snackbar.make(mCoordinatorLayout, "snackbar_text", Snackbar.LENGTH_SHORT)
.addCallback(new Snackbar.Callback() {
@Override
public void onDismissed(Snackbar transientBottomBar, int event) {
super.onDismissed(transientBottomBar, event);
//do something
}
@Override
public void onShown(Snackbar sb) {
super.onShown(sb);
//do something
}
})
.setAction("action", new View.OnClickListener() {
@Override
public void onClick(View view) {
//do something
}
})
.show();
在Snackbar的使用方法中:
.make()是必要方法,mCoordinatorLayout是CoordinatorLayout的实例化,"snackbar_text"是Snackbar所要显示的内容,Snackbar.LENGTH_SHORT是Snackbar显示的时长,这个参数有三个选择:LENGTH_SHORT、LENGTH_INDEFINITE、LENGTH_LONG。
.addCallback()不是必要方法,这个方法中可以重写两个方法,分别监听Snackbar的显示和消失,函数体内可以写自己的操作。
.setAction()不是必要方法,这个方法实现在Snackbar右侧显示一个按钮,"action"是按钮显示的内容,View.OnClickListener()监听按钮的点击事件,在重写的onClick()中实现操作。
.show()是必要方法,来使Snackbar显示出来。
上面Snackbar示例代码的效果如下: