Snackbar使用详解

来源:互联网 发布:上海松江3208t编程 编辑:程序博客网 时间:2024/06/05 22:37






Snackbar是介于Toast与Dialog之间的一个控件,既可以像Toast一样自动消失,也可以像Dialog一样交互消失。


使用与Toast相似:


Snackbar.make(view, "已加入行程", Snackbar.LENGTH_SHORT).show();


第一个参数是view,任意都行,但是google官方建议传入CoordinatorLayout,一来在Snackbar显示的时候可以右滑移除,二来在Snackbar显示的时候布局会自动变


第二个参数是message,即提示的内容


第三个参数是显示的时长,Snackbar.LENGTH_SHORT 短时间显示且自动消失,Snackbar.LENGTH_LONG 长时间显示且自动消失,Snackbar.LENGTH_INDEFINITE 不消失显示 用在加了Action的情况下,在用户点击之后再消失。


高级一点的使用(改颜色,加Action,加回调):


final Snackbar mSnackbar = Snackbar.make(view, "已加入行程", Snackbar.LENGTH_INDEFINITE);                //设置Snackbar的背景颜色                mSnackbar.getView().setBackgroundColor(ContextCompat.getColor(MainActivity.this,R.color.colorPrimary));                //设置Action文字的背景颜色                mSnackbar.setActionTextColor(Color.WHITE);                //设置Action并监听事件                mSnackbar.setAction("知道了", new View.OnClickListener() {                    @Override                    public void onClick(View view) {                        //to do something                    }                })                        .show();                //添加回调                mSnackbar.addCallback(new Snackbar.Callback(){                    @Override                    public void onDismissed(Snackbar transientBottomBar, int event) {                        super.onDismissed(transientBottomBar, event);                        Log.i(TAG, "onDismissed(MainActivity.java:62)--->> " + "onDismissed");                    }                    @Override                    public void onShown(Snackbar sb) {                        super.onShown(sb);                        Log.i(TAG, "onShown(MainActivity.java:68)--->> " + "onShown");                    }                });

Material Design设计规范:按钮最多一个,且提示文字是短文本


Github:https://github.com/yechaoa/MaterialDesign


原创粉丝点击