介绍

Snackbars provide lightweight feedback about an operation. They show a brief message at the

bottom of the screen on mobile and lower left on larger devices. Snackbars appear above all other

elements on screen and only one can be displayed at a time.

They automatically disappear after a timeout or after user interaction elsewhere on the screen,

particularly after interactions that summon a new surface or activity. Snackbars can be swiped

off screen.

Snackbars can contain an action which is set via

{@link #setAction(CharSequence, android.view.View.OnClickListener)}.

To be notified when a snackbar has been shown or dismissed, you can provide a {@link Callback} via {@link #setCallback(Callback)}.

翻译:

Snackbar为用户的一个操作提供轻量级的反馈,他会在手机屏幕的底部或者是大设备的左下方显示一个简洁的消息。Snackbar出现在屏幕所有元素的上面,显示一小会。

Snackbar显示一会后会自动消失,用户点击其他地方的时候也会消失,尤其,当显示一个新的界面的时候,Snackbar会滑出界面。

Snackbar 可以通过setAction(CharSequence, android.view.View.OnClickListener) 来设置一个点击事件,同时也可以通过setCallback(Callback)来监听snackbar的显示和消失。

类介绍

Snackbar中Public属性列表

方法或接口 意义
Callback 抽象函数用来设置SnackBar显示和消失的回调
make 创建SnackBar
setAction 设置ActionView的响应事件
show 显示SnackBar
dismiss 收起SnackBar
setActionTextColor 设置ActionView的字体颜色
setText 设置TextView的显示内容
setDuration 设置SnackBar的显示时间
getDuration 获取SnackBar的显示时间
getView 获取SnackBar的View视图
setCallback 设置显示和消失的事件监听
isShown 是否已经显示
shownOrQueued 是否已经显示或者在队列中等待显示

整理而言的话,感觉Snackbar就是Toast的一个升级版本,使用的方式和Toast也比较相似。


创建Snackbar之后一定要记得调用show()方法


具体使用

–代码内容–

package mraz.com.snackdemo;

import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.Toast; public class MainActivity extends AppCompatActivity implements View.OnClickListener { RelativeLayout rootLayout; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rootLayout = (RelativeLayout) findViewById(R.id.root_layout); Button shortButton = (Button) findViewById(R.id.short_button);
Button longButton = (Button) findViewById(R.id.long_button); shortButton.setOnClickListener(this);
longButton.setOnClickListener(this); } @Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.short_button:
final Snackbar shortSnackbar = Snackbar.make(rootLayout, " Short SnackBar", Snackbar.LENGTH_SHORT);
shortSnackbar.setAction("Click", new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(rootLayout.getContext(), "Shoort Snackbar onClick", Toast.LENGTH_SHORT).show();
}
}
);
shortSnackbar.setActionTextColor(getResources().getColor(R.color.colorPrimaryDark));
shortSnackbar.show(); break; case R.id.long_button:
Snackbar longSnackbar = Snackbar.make(rootLayout, " Long SnackBar", Snackbar.LENGTH_LONG);
longSnackbar.setCallback(new SnackCallback());
longSnackbar.show();
break;
}
} class SnackCallback extends Snackbar.Callback {
@Override
public void onDismissed(Snackbar snackbar, int event) {
super.onDismissed(snackbar, event);
Toast.makeText(rootLayout.getContext(), "SnackBar onDismissed", Toast.LENGTH_SHORT).show();
} @Override
public void onShown(Snackbar snackbar) {
super.onShown(snackbar);
Toast.makeText(rootLayout.getContext(), "SnackBar onShown", Toast.LENGTH_SHORT).show();
}
}
}

实际效果

<Android 基础(十一)> Snackbar的更多相关文章

  1. Android 基础 十一 Android的消息机制

    Handler是Android消息机制的上层接口,这使得在开发应用过程中我们只需要和Handler交互即可.Handler的使用过程很简单,通过它可以轻松地将一个任务切换到Handler所在的线程中去 ...

  2. Android Studio(十一):代码混淆及打包apk

    Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...

  3. Android基础测试题(四)

    看了前两道题大家有没有发现,测试题少了(一),大家猜猜测试题(一)是什么? Android基础测试题(四): 需求: 建一个方法,格式化输出2016-11-14 10:15:26格式的当前时间,然后截 ...

  4. Android基础测试题(二)

    今天给大家带来的是Android基础测试题(二) 题目要求: 定义一个5位长度的整型数组并初始化,然后构建方法根据用户传入的数字判断是否存在数组中,如果存在,返回所在位置,如果不存在,返回-1 首先第 ...

  5. Bootstrap<基础十一>字体图标(Glyphicons)

    字体图标(Glyphicons),并通过一些实例了解它的使用.Bootstrap 捆绑了 200 多种字体格式的字形. 获取字体图标 我们已经在 环境安装 章节下载了 Bootstrap 3.x 版本 ...

  6. Mono.Android 基础

    Mono.Android 基础 (地址) Mono.Android项目结构是 — Project + Assets + Resources + drawable + layout + values R ...

  7. 深入理解gradle编译-Android基础篇

    深入理解gradle编译-Android基础篇 导读 Gradle基于Groovy的特定领域语言(DSL)编写的一种自动化建构工具,Groovy作为一种高级语言由Java代码实现,本文将对Gradle ...

  8. android基础---->JSON数据的解析

    上篇博客,我们谈到了XML两种常用的解析技术,详细可以参见我的博客(android基础---->XMl数据的解析).网络传输另外一种数据格式JSON就是我们今天要讲的,它是比XML体积更小的数据 ...

  9. 基础4 Android基础

    基础4 Android基础 1. Activity与Fragment的生命周期. Activity生命周期 打开应用 onCreate()->onStart()->onResume 按BA ...

  10. Android基础总结(8)——服务

    服务(Service)是Android中实现程序后台运行的解决方案,它非常适合用于去执行哪些不需要和用户交互而且还要长期运行的任务.服务的运行不依赖任何用户界面,即使当程序被切换到后台,或者用户打开了 ...

随机推荐

  1. [BOI2007]Sequence 序列问题 BZOJ1345

    题目描述 对于一个给定的序列a1, …, an,我们对它进行一个操作reduce(i),该操作将数列中的元素ai和ai+1用一个元素max(ai,ai+1)替代,这样得到一个比原来序列短的新序列.这一 ...

  2. 18.Jewels and Stones(珠宝和石头)

    Level:   Easy 题目描述: You're given strings J representing the types of stones that are jewels, and Sre ...

  3. Unity 动画系统 Animation和Animator 常用小功能

  4. input keyup的时候实现内容过滤

    当在文本框中输入关键字,就会搜索出包含关键字的数据 实现: 只需要一个内容过滤即可 <body> <input type="text" id="sear ...

  5. flex布局基础

    一.Flex布局是什么? Flex 即:"弹性布局" 任何一个容器都可以指定为Flex布局 .box{ display:flex; } 行内元素也可以使用Flex布局 .box{ ...

  6. Lucene.Net和盘古分词应用

    Lucene.Net.dll:用做全文索引 PanGu.dll(盘古分词):作为中文分词的条件 大致原理: 1.Lucene先根据PanGu将需要搜索的内容分隔.分词,然后根据分词的结果,做一个索引页 ...

  7. Impala与Hive的优缺点和异同

    定位: HIVE:长时间的批处理查询分析 impala:实时交互式SQL查询 impala优缺点优点: 1. 生成执行计划树,不用多次启动job造成多余开销,并且减少中间结果数据写入磁盘,执行速度快 ...

  8. hadoop用put上传文件时报错

    用命令-put上传文件 报错0 datanode(s) running 原因是进行了多次格式化 解决办法: 停止集群 删除在hdfs中配置的data目录(即在core-site.xml中配置的hado ...

  9. vue 组件之间数据传递(七)

    1.props:父组件 -->传值到子组件 app.vue是父组件 ,其它组件是子组件,把父组件值传递给子组件需要使用 =>props 在父组件(App.vue)定义一个属性(变量)sex ...

  10. JS你可能还不知道的一些知识点(一)

    js程序是用Unicode字符集编写的, 2.转义字符:反斜线 1 2 3 4 function Test(){   var s='you\'re right,it can\'t be a quote ...