1.简介

  Snackbar 它是Toast的子类。主要用来提示短暂的提示信息后,然后它自动消失。

  它寄生在普通view上,具有一些基本功能。

  它寄生在 CoordinatorLayout 时,有以下两个特性:

    a.可以通过swipe手势关闭它。

    b.当它显示时,layout自动移动其它view,以提供足够空间显示Snackbar.

    implementation 'com.google.android.material:material:1.1.0-alpha09'

2.如何显示Snackbar

2.1 使用 Use a CoordinatorLayout

  snackbar会在指定的view继承层次中向上找 到最近的CoordinatorLayout或者有content view的窗口。

  如果想在某个layout内显示snackbar,需要把它放入CoordinatorLayout中,它是FrameLayout子类。FrameLayout可以直接用它替换,其它layout要把它放入CoordinatorLayout中,如下:

 <android.support.design.widget.CoordinatorLayout
android:id="@+id/myCoordinatorLayout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"> <!-- Here are the existing layout elements, now wrapped in
a CoordinatorLayout -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"> <!-- …Toolbar, other layouts, other elements… --> </LinearLayout> </android.support.design.widget.CoordinatorLayout>

下面就是区别:注意图中下面黑色的区域。

  

2.2 创建Snackbar

 Snackbar mySnackbar = Snackbar.make(viewId, stringId, duration);

  

2.3 显示Snackbar

  注意,系统中同时只能显示一个snackbar

mySnackbar.show();

3.给Snackbar添加一个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();
 public class MyUndoListener implements View.OnClickListener{

     &Override
public void onClick(View v) { // Code to undo the user's last action
}
}

最新文章

  1. Swift学习之熟悉控件
  2. ListView遍历每个Item出现NullPointerException的异常
  3. 何解決 LinqToExcel 發生「無法載入檔案或組件」問題何解決 LinqToExcel 發生「無法載入檔案或組件」問題
  4. 无废话ExtJs 入门教程十六[页面布局:Layout]
  5. asp.net mvc处理css和js版本问题
  6. specify a file path to store the seed
  7. 使用FROM确认按钮(键盘13号键)提交特性并使用ajax.POST提交.
  8. 【转载】在LoadRunner中执行命令行程序之:popen()取代system()
  9. 关于teleport_pro使用过程中的一点疑惑
  10. phpcms常用函数
  11. jar 文件
  12. java设计模式类图大全
  13. 【JavaScript】使用面向对象的技术创建高级 Web 应用程序
  14. 第一个Cocos2d-JS游戏
  15. ZeroMemory
  16. GDB的non-stop模式
  17. CKEditor + CKFinder 实现编辑上传图片配置
  18. Android 开发笔记“context和getApplicationContext”
  19. @Required 注释应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中,否则容器就会抛出一个 BeanInitializationException 异常。
  20. sqlite数据库之简单操作

热门文章

  1. UVA 1995 I can guess the structer
  2. CF601D:Acyclic Organic Compounds
  3. 使用XML定义组件样式
  4. Spring Cloud(7):Zuul自定义过滤器和接口限流
  5. 得到java异常printStackTrace的详细信息
  6. bzoj3190【JLOI2013】赛车
  7. 怎样托管你的项目到github上具体教程
  8. Sublime Text 2 编辑器实用技巧大全
  9. jquery選取所有checkbox和判斷是否全部checkbox已經被勾選
  10. list-style样式不显示问题