浅谈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();
            }
        });
    }
}

 显示前:

显示后:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏水击三千

TimePicker控件、帧动画、补间动画

1.TimePicker控件 最近感觉每个开发平台的控件基本都差不多,在Android中控件的事件和.net控件直接写事件有一定的区别,net事件可以直接界面进...

25110
来自专栏图像识别与深度学习

《Android》Lesson03-监听器、Toast

1799
来自专栏james大数据架构

Android Fragment应用实战

现在Fragment的应用真的是越来越广泛了,之前Android在3.0版本加入Fragment的时候,主要是为了解决Android Pad屏幕比较大,空间不能...

21910
来自专栏封碎

Android全屏的两种方法 博客分类: Android小技巧 AndroidXML

 然后在manifest.xml中,为想要全屏的activity加上android:theme="@style/Theme.NoTitle_FullScreen...

561
来自专栏向治洪

关于activitygroup过时,用frament替换操作

现在Fragment的应用真的是越来越广泛了,之前Android在3.0版本加入Fragment的时候,主要是为了解决Android Pad屏幕比较大,空间不...

7107
来自专栏Java学习网

Android UI控件系列:TabWidget(切换卡)

Android UI控件系列:TabWidget(切换卡) Tab选项卡类似与电话本的界面,通过多个标签切换不同的内容,要实现这个效果,首先要知道TabHost...

2359
来自专栏编程之路

羊皮书APP(Android版)开发系列(七)Android沉浸通知栏

603
来自专栏林冠宏的技术文章

android 在使用ViewAnimationUtils.createCircularReveal()无法兼容低版本的情况下,另行实现圆形scale动画

ViewAnimationUtils.createCircularReveal()的简介:       ViewAnimationUtils.createCir...

1965
来自专栏上善若水

029android初级篇之android应用的状态栏的颜色

在代码中实现对状态栏颜色的控制,(只对系统版本在android4.4及以上的有效)

723
来自专栏Android先生

让你的Dialog变得更简洁一点吧

用Builder模式重新打造一个dialog,案例中有两种Builder,分别是CommonBuilder和MDBuilder,如果还想实现其他的通用dialo...

680

扫码关注云+社区