若有虚拟按键栏,安卓Snackbar 显示在虚拟按键栏的上面。
private Snackbar snackbar;
/**
* 展示一个SnackBar
*/
public void showSnackBar(String message) {
//显示在虚拟按钮上面
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
snackbar = Snackbar.make(getWindow().getDecorView(), message, Snackbar.LENGTH_INDEFINITE);
snackbar.setActionTextColor(Color.YELLOW);
snackbar.setAction("知道了", new View.OnClickListener() {
@Override
public void onClick(View v) {
dismissSnackBar();
}
}).show();
}
/**
* 隐藏一个SnackBar
*/
public void dismissSnackBar() {
if (snackbar != null && snackbar.isShownOrQueued()) {//不为空,是否正在显示或者排队等待即将要显示
snackbar.dismiss();
snackbar = null;
}
}