snackbar

2017-02-15  本文已影响37人  难得糊涂与君勉

而Snackbar则在这方面进行了扩展,允许在提示当中加入一个可以交互的按钮,当用户点击按钮时候可以执行
一些额外的逻辑操作

- 简单使用

Snackbar.make(view,"Data deleted",Snackbar.LENGTH_SHORT)
.setAction("Undo", new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this,"你做出了修改",Toast.LENGTH_SHORT).show();
}
}).show();
//上述代码表示最简单的使用,.make()方法来创建了一个Snackbar对象,第一个参数需要传入一个view,只要
//是当前界面布局的任意一个View都可以,Snackbar会使用这个View来自动查找最外层的布局,用于展示Snackbar,
//第二个参数是要显示的内容,第三个参数表示展示时长。
//.setAction()方法,设置一个动作。


- 别的用法

// 设置动作按钮颜色
snackbar.setActionTextColor(getResources().getColor(R.color.add_bg_color));
// 获取 snackbar 视图
View snackbarView = snackbar.getView();
//设置修改snackbar文本颜色
�int snackbarTextId = android.support.design.R.id.snackbar_text;
TextView tv = (TextView) snackbarView.findViewById(snackbarTextId);
tv.setTextColor(getResources().getColor(R.color.add_bg_color));
//设置snackbar背景色
�snackbarView.setBackgroundColor(Color.GRAY);


- 添加一个icon

//先得到Snackbar的视图。
View snackbarView = snackbar.getView();
//设置icon
ImageView iconImage = new ImageView(MainActivity.this);//得到一个Imageview
iconImage.setImageResource(R.mipmap.ic_launcher);//给ImageView设置图片
//icon插入布局
Snackbar.SnackbarLayout snackbarLayout = (Snackbar.SnackbarLayout) snackbarView;
Snackbar.SnackbarLayout.LayoutParams sl = new Snackbar.SnackbarLayout.LayoutParams(vl.WRAP_CONTENT, vl.WRAP_CONTENT);
//让icon的布局位于父布局垂直居中的位置
sl.gravity = Gravity.CENTER_VERTICAL;
iconImage.setLayoutParams(sl);
snackbarLayout.addView(iconImage, 0);


- 改变Snackbar出现的位置

// 获取 snackbar 视图
View snackbarView = snackbar.getView();
//获得布局参数
ViewGroup.LayoutParams vl = snackbarView.getLayoutParams();
CoordinatorLayout.LayoutParams cl = new CoordinatorLayout.LayoutParams(vl.width, vl.height);
cl.gravity = Gravity.CENTER_VERTICAL;
snackbarView.setLayoutParams(cl);


参考:[https://github.com/loonggg/MaterialDesignDemo](https://github.com/loonggg/MaterialDesignDemo)
上一篇下一篇

猜你喜欢

热点阅读