一、使用场景:
所有使用Toast的场景,都可以用Snackbar替换,以下为对比图:
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默认效果
3. 使用点击按钮:
Snackbar.make(view,"已清除缓存数据",Snackbar.LENGTH_SHORT)
.setAction("了解", new View.OnClickListener() {
@Override
public void onClick(View v) {
//执行点击事件
}
})
.show();
实际效果:
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自定义效果