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