SnackBar的样式使用(改变颜色以及设置action)

一、如何为Snackbar添加背景颜色
你可以通过getView() 方法获取Snackbar的核心视图,然后就可以在对它采用任意颜色了。
比如:
snackbar.getView().setBackgroundColor(colorId);

二、如何给SnackBar设置action
Snackbar snackbar=Snackbar.make(floatingActionButton,"确定是否注册?",Snackbar.LENGTH_LONG);
        snackbar.setAction("Yes", new View.OnClickListener() {
            @Override
            public void onClick(View view) {
               

            }
        });
snackbar.getView().setBackgroundColor(Color.parseColor("#66ccff"));
snackbar.setActionTextColor(Color.parseColor("#FF4081"));
snackbar.show();

三、如何给SnackBar设置图标
/* 下面的 5 行是给 snackbar 设置左边的图标
1. 得到 snackbar view
2. snackbar 安卓系统有两个 textview ID snackbar_text ),第一个 view 用于显示内容
第二个内容用于显示 action 的标题 (ID snackbar_action)
此处是选择了左边显示图标,所以用第一个 textview
3. 得到自己想要添加的图片对象
4. 设置其上下左右的间距
5 、将图标添加进 textview 中,并显示 snacker
*/

View view=snackbar.getView();
TextView textView=(TextView)view.findViewById(R.id.snackbar_text);//
Drawable drawable = getResources().getDrawable(R.mipmap.ic_launcher);//图片可以自己选择
drawable.setBounds(0,0,drawable.getMinimumWidth(),drawable.getMinimumHeight());
textView.setCompoundDrawables(drawable,null,null,null);



四、注意:当同时有SnackBar和FAB的时候,Snackbar的第一个依靠父控件是fab
public static void displaySnackUnderFAB(FloatingActionButton floatingActionButton, String data) {
    Snackbar snackbar = Snackbar.make(floatingActionButton, data, Snackbar.LENGTH_LONG);

    snackbar.getView().setBackgroundColor(Color.parseColor("#66ccff"));
    snackbar.setActionTextColor(Color.parseColor("#FF4081"));
    snackbar.show();
}


你可能感兴趣的:(android)