Snackbar--Toast的替代者
来源:互联网 发布:挪威和丹麦知乎 编辑:程序博客网 时间:2024/05/17 02:39
转载:微信公众号:安卓应用频道
Snackbar是Android Support Library 22.2.0里新增的一个控件,可以理解成一个加强版的Toast或者轻量级的Dialog。默认从底部弹出,会自动消失,也可以手动划出屏幕消失。Snackbar默认是不能交互的,但是可以添加一个点击事件。官方也是推荐用Snackbar来替代Toast的,一起来看看吧!!!
简单入门
Snackbar的写法非常简单,也和Toast非常类似
Snackbar.make(view, "SnackBar", Snackbar.LENGTH_SHORT).show();
Toast是系统级别的,是浮在所有View上的。而Snackbar却是只需要一个View来承载就可以了。
深入学习
添加点击事件,以及其他相关设置,相信代码一看就懂。
Snackbar.make(findViewById(R.id.btn_snack), "It is Snackbar", Snackbar.LENGTH_SHORT) .setActionTextColor(Color.WHITE) .setCallback(new Snackbar.Callback() { @Override public void onDismissed(Snackbar snackbar, int event) { super.onDismissed(snackbar, event); System.out.println("Snackbar 消失了"); } @Override public void onShown(Snackbar snackbar) { super.onShown(snackbar); System.out.println("Snackbar 出现了"); } }).setAction("点我", new View.OnClickListener() { @Override public void onClick(View v) { System.out.println("点击了Snackbar"); } }).show();
设置背景色或背景图
Snackbar snackbar = Snackbar.make(findViewById(R.id.btn_snack), "Snackbar", Snackbar.LENGTH_SHORT); View view = snackbar.getView(); view.setBackgroundColor(Color.GREEN); snackbar.show();
设置位置,动画,icon
Snackbar snackbar = Snackbar.make(v, "It is Snackbar", Snackbar.LENGTH_SHORT); View snackbarView = snackbar.getView(); //设置显示位置居中 ViewGroup.LayoutParams vl = snackbarView.getLayoutParams(); CoordinatorLayout.LayoutParams cl = new CoordinatorLayout.LayoutParams(vl.width, vl.height); cl.gravity = Gravity.CENTER; snackbarView.setLayoutParams(cl); //设置字体的颜色 ((TextView)snackbarView.findViewById(R.id.snackbar_text)).setTextColor(Color.RED); //设置背景颜色 snackbarView.setBackgroundColor(Color.GREEN); //自定义动画// snackbarView.setAnimation(); //设置icon ImageView imageView = new ImageView(this); imageView.setBackgroundResource(R.mipmap.ic_launcher); Snackbar.SnackbarLayout ss = (Snackbar.SnackbarLayout) snackbarView; ss.addView(imageView, 0); snackbar.setAction("点击", new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "Toast", Toast.LENGTH_SHORT).show(); } }); snackbar.show();
暂时只是学习了如何使用,并没有开始研究源码。而且实际使用中突然发现,位置设定不准确。后续会继续补充。
0 0
- Snackbar--Toast的替代者
- Toast替代者Snackbar
- 使用效果更好的Snackbar替代过时的Toast
- android——Snackbar+CoordinatorLayout替代Toast
- Snackbar和toast以及snackbar的样式自定义
- Snackbar 的使用 Toast加强版
- Demo4 告别Toast:精致的Snackbar
- Dialog、Toast、Snackbar的区别和使用
- Material Design 下的Toast 拓展 Snackbar
- Dialog Toast 和 Snackbar的使用经验
- 关于Snackbar的认识 用于代替toast
- Dialog、Toast、Snackbar的区别和使用
- Android中snackBar的使用【替换Toast】
- 您好 Snackbar, 再见Toast
- 巧用Snackbar代替Toast
- Snackbar与Toast不同之处
- Android Toast与Snackbar
- Android Toast与Snackbar
- HDU 2680 Dijkstra反向图
- 改变规则可以,前提是得有本事——北漂18年(64)
- lintcode线段树的应用
- hdu 2516 取石子游戏(FIB博弈)
- Hook Com接口函数
- Snackbar--Toast的替代者
- BLE 开源项目总结
- 跳转
- 【多线程】 java线程实例(测试阻塞队列&&线程池)
- Ubuntu burg
- 用Delphi操作INI文件
- Delphi中建议使用的语句
- 创建一个Android程序(简单介绍工程里面各个文件的作用)
- 【mina】mina传输对象