Snackbar的个性化使用

一、使用场景:

所有使用Toast的场景,都可以用Snackbar替换,以下为对比图:

Snackbar的个性化使用_第1张图片
Toast与Snackbar效果对比

二、使用方法:

1. 在build.gradle中加入:
dependencies {
      ...
      compile 'com.android.support:design:23.4.0'
}
2. 将原来的Toast替换:
      Toast.makeText(getActivity(),"已清除缓存数据",Toast.LENGTH_SHORT).show();
        |替换
      Snackbar.make(view,"已清除缓存数据",Snackbar.LENGTH_SHORT).show();
      //其中view传入要显示Snacker的父View即可,如:getWindow().getDecorView()  

实际效果:


Snackbar的个性化使用_第2张图片
Snackbar默认效果
3. 使用点击按钮:
 Snackbar.make(view,"已清除缓存数据",Snackbar.LENGTH_SHORT)
                        .setAction("了解", new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                //执行点击事件
                            }
                        })
                        .show();

实际效果:


Snackbar的个性化使用_第3张图片
Snackbar点击按钮

三、个性化使用:

那如何实现自定义SnackBar的背景、颜色、字体呢?很简单,见下面代码:

    private  void showSnackbar() {
        Snackbar snackbar = Snackbar.make(view, content, Snackbar.LENGTH_SHORT);
        customStyleSnackbar(snacker);//调用自定义SnackBar方法
        snackbar.show();
    }

    private  void customStyleSnackbar(Snackbar snackbar) {
        LinearLayout snackbarView = (LinearLayout) snackbar.getView();//获取SnackBar布局View实例
        TextView textView = ((TextView) snackbarView.findViewById(R.id.snackbar_text));//获取文本View实例
        Button button = (Button) snackbarView.findViewById(R.id.snackbar_action);//获取按钮View实例

        snackbarView.setBackgroundColor(Color.parseColor("#eceff1"));//更改背景颜色
        textView.setTextColor(Color.parseColor("#448AFF"));//更改文本颜色
    }

完成效果:


Snackbar的个性化使用_第4张图片
Snackbar自定义效果

你可能感兴趣的:(Snackbar的个性化使用)