官方推荐使用Snackbar代替Toast

 
Paste_Image.png

Snackbar使用其实就是一句话,跟toast很相似:

Snackbar.make(view,"消息已发出",Snackbar.LENGTH_SHORT).show();

但是有几个注意点,make方法的第一个参数是一个view,任何一个view都可以,但是官方推荐使用CoordinatorLayout,有俩个好处:
1.用户可以滑动(右滑)消除掉snackbar。
2.当snackbar出现的时候,布局会移动一些UI元素,比如右下角的悬浮按钮会自动上移。

view不一定直接就是CoordinatorLayout,该方法触发的时候,会一级一级的向上找,有没有CoordinatorLayout,如果找到顶层window decor's content view还没找到停止找,所以,还是建议直接使用CoordinatorLayout来当做这个参数,而不用系统浪费力气去找,官网是这样说的。

如果你的布局已经写好了,没有CoordinatorLayout,那么可以在最外面一层镶嵌上CoordinatorLayout,CoordinatorLayout就是相当于一个超级FrameLayout。(我发现一些5.0的手机,比如华为EMUI3.0,由于系统定制原因,是不支持状态栏变色的,但是如果你使用CoordinatorLayout就可以了)

snackbar显示是一个接一个的,不能同时显示很多。说到这里,我想起了一个问题,就是toast如果同时或者短时间内显示很多个toast,界面会一直跳啊跳的,感觉toast消失不掉,神烦!其实有一个方法,就是使用application来当做context,那么就会显示最后一个toast,只显示一个,这个是从其他地方看到的技巧。

下面是如何加那个'按钮'(Action),即图片上的undo。

 
Paste_Image.png

也很简单,几句代码,看了就明白了:

public class MyUndoListener implements View.OnClickListener{

    @Override
public void onClick(View v) { // Code to undo the user's last action
}
}
Snackbar mySnackbar = Snackbar.make(findViewById(R.id.myCoordinatorLayout), R.string.email_archived,Snackbar.LENGTH_SHORT);
mySnackbar.setAction(R.string.undo_string, new MyUndoListener());
mySnackbar.show();

官网重要的几点都给列出来了,其他可以查阅API,比如改'按钮'(action)颜色

 
Paste_Image.png

如果有什么写的不对的请指出

Android

© 著作权归作者所有
举报文章

关注 爵小友

写了 5665 字,被 13 人关注,获得了 25 个喜欢

个人博客地址:http://shiguiyou.cn/

小礼物走一走,来简书关注我

赞赏支持
 

作者:爵小友
链接:http://www.jianshu.com/p/45ad070dbfec
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

最新文章

  1. 作为前端er,写在年末的一些话
  2. Web Applicationservlet,cookie,session
  3. C++ 实现Range类,用于常规遍历
  4. flask01 安装及初涉
  5. C#中动态读写App.config配置文件
  6. [SQL] 要查询9 月份的数据中的任意时间段,可能是一个月的,也可能是1日到15日的
  7. 后台获取ajax发送过来的值
  8. jni相关
  9. .NET设计模式(2):单件模式(Singleton Pattern)
  10. 关于socket客户端接收不定长数据的解决方案
  11. pumping lemma for finite regular language?
  12. Python中类的方法属性与方法属性的动态绑定
  13. js 中bind
  14. https请求之绕过证书安全校验工具类(原)
  15. Python安装包:协程(gevent)
  16. SQL Select 语句小数位数影响计算的准确率的问题
  17. JSONObject optString
  18. Selenium如何在谷歌浏览器模拟H5页面
  19. 工作流引擎--swamp
  20. Linux centos7 下 svn 服务器搭建

热门文章

  1. Html中文字过多,单行超出和多行超出显示省略号
  2. JDK环境变化配置
  3. 移动APP测试要点总结
  4. hdu4289最小割
  5. Leetcode 52
  6. java并发编程:线程安全管理类--原子操作类--AtomicLong
  7. 微信小程序navigateTo /redirectTo/navigateBack 三者区别
  8. jstree 取消选中父节点
  9. Howto: 在ArcGIS10中将地图文档(mxd文档)批量保存到之前版本
  10. how to play