浅谈SnackBar(Toast大兄弟)

简介: SnackBar是 Android Support Library 22.2.1 里面新增提供的一个控件,我们可以简单的把它理解成一个加强版的Toast,或者是一个轻量级的Dialog。 特点:1.SnackBar和Toast的用途一样,都是用来提示用户操作后的结果的。

SnackBar是 Android Support Library 22.2.1 里面新增提供的一个控件,我们可以简单的把它理解成一个加强版的Toast,或者是一个轻量级的Dialog。

 

特点:

1.SnackBar和Toast的用途一样,都是用来提示用户操作后的结果的。

2.SnackBar显示时位置一般是在屏幕底部,较大的设备就显示在左下角。

3.SnackBar同一时间只有一条

4.SnackBar可以自动消失,也可以手动取消(在完成某个操作的时候)

5.在Activity结束的时候,SnackBar会消失,这点Toast不会   (避免Toast那样 退出Activity了,Toast还继续显示的问题)

6.SncakBar能支持侧滑

 

 

看一下SnackBar的使用方法:

三个参数:View ,内容文本,显示时长

 
public static Snackbar make(View view, CharSequence text, int duration) { Snackbar snackbar = new Snackbar(findSuitableParent(view)); snackbar.setText(text); snackbar.setDuration(duration); return snackbar; }

 

和Toast的使用类似

Toast的三个参数:上下文,内容文本,显示时长

Toast.makeText(this,"Toast内容",Toast.LENGTH_SHORT).show();

 

 

可以看出,SnackBar的显示需要依赖于一个View。

 

另外SnackBar的显示时长的设置值可以为:

Snackbar.LENGTH_SHORT// 短时间显示,然后自动取消
Snackbar.LENGTH_LONG// 长时间显示,然后自动取消
Snackbar.LENGTH_INDEFINITE// 不消失显示,除非手动取消

 

 

看一下简单的使用

xml文件

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    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">


    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end|bottom"
        android:layout_margin="16dp"
        android:src="@mipmap/icon_add" />

</android.support.design.widget.CoordinatorLayout>

 

Activity

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

findViewById(R.id.fab).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view,"这是Snackbar控件显示的内容",Snackbar.LENGTH_SHORT).show();
}
});
}
}

 

 显示前:

显示后:

 

相关文章
|
机器学习/深度学习 Android开发
Android permission 动态申请、授权
原文:Android permission 动态申请、授权 Android permission 新特性深度学习 本篇文章介绍android permission系统,并介绍android 6.0 permission的新特性,包括权限动态申请和授权等。
1645 0
|
XML Android开发 数据格式
Android Studio 无法预览xml布局视图:failed to load AppCompat ActionBar with unkNown error
问题如下:   解决方法: 找到res-->values-->styles.xml 文件 可以看到主题Them设置如下:    修改为:   界面预览可以正常显示
7113 0
|
存储 算法 安全
HashMap的遍历方式及底层原理
HashMap的遍历方式及底层原理
|
API Android开发
Android | 通过WindowInsetsController设置系统栏颜色、Behavior、显示隐藏等
两种方式可以引入`WindowInsetsController`,一种直接通过`API`的`val controller = window.decorView.windowInsetsController`获取,注意该方法在`API30`及以上才有
1400 0
|
Java 测试技术 API
Android透明状态栏和导航栏方案最终版
Android透明状态栏和导航栏方案最终版
1554 0
|
缓存 安全 网络安全
net::ERR_CONNECTION_RESET
`net::ERR_CONNECTION_RESET` 错误通常表示网络连接被重置。这可能是由于以下原因之一导致的: 1. 网络问题: 该错误可能是由于网络中断、不稳定的连接或基础设备故障等引起的。请确保你的网络连接正常,并尝试刷新页面或重新启动网络设备。 2. 防火墙或安全软件: 有时,防火墙或某些安全软件可能会干扰网络连接并重置它。尝试禁用防火墙或安全软件,然后再次访问网页,看看问题是否解决。 3. 代理设置: 如果你使用了代理服务器,尝试禁用代理并直接连接到互联网,然后检查问题是否仍然存在。 4. 网站服务器问题: `net::ERR_CONNECTION_RESET` 错误也可
16410 0
|
Java Android开发 开发者
Android Spinner与自定义TextView填坑记
Android Spinner与自定义TextView填坑记
369 0
Android Spinner与自定义TextView填坑记
两个 Timestamp 如何比较大小
两个 Timestamp 如何比较大小
737 0
|
SQL 大数据 开发者
SQL 语法--表特定语句--分组、排序、过滤 | 学习笔记
快速学习 SQL 语法--表特定语句--分组、排序、过滤
506 0
SQL 语法--表特定语句--分组、排序、过滤 | 学习笔记
|
Java
Java——HashMap键值排序
Java——HashMap键值排序
544 0