前言
我浏览material.io网站时,从所谓的“Material Design 2”中找到一些新的组件,并发现Snackbar已经改变了,它不再占用整个屏幕长度,并且周围会有一个间距。
但我并没有从Support Library的alpha版本中找到它,所以我决定自己实现一下。
1、创建Drawable文件
复制代码
2、创建工具类
public class SnackbarHelper { public static void config(Context context, Snackbar snack) { addMargins(snack); setRoundBordersBg(context, snack); ViewCompat.setElevation(snack.getView(), 6f); } private static void addMargins(Snackbar snack) { ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) snack.getView().getLayoutParams(); params.setMargins(12, 12, 12, 12); snack.getView().setLayoutParams(params); } private static void setRoundBordersBg(Context context, Snackbar snackbar) { snackbar.getView().setBackground(context.getResources().getDrawable(R.drawable.bg_snackbar)); }}复制代码
3、使用
public void showSnackbar(View view) { Snackbar snackbar = Snackbar.make(view, "这个一个snackbar", Snackbar.LENGTH_SHORT); snackbar.setAction("ok", new View.OnClickListener() { @Override public void onClick(View v) { } }); snackbar.setActionTextColor(Color.RED); SnackbarHelper.config(MainActivity.this, snackbar); snackbar.show();}复制代码