介绍:

  SnackbarAndroid Support Design Library库支持的一个控件,用于在界面下面提示一些关键信息,跟Toast不同的地方是SnackBar允许用户向右滑动消除它,同时,也允许在SnackBar中设定一个Action,当用户点击了SnackBar里面的按钮的时候,可以进行一些操作,所以,功能绝对是很强大的。

  官方推荐使用CoordinatorLayout(另一个Android Support Design Library库支持的控件)容纳。因为使用这个控件,可以保证Snackbar可以让用户通过向右滑动退出。

由浅入深:

1、基础功能:从底部弹出snackbar

在xml文件中定义snackBar的容器:Coordinator容器:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><Buttonandroid:onClick="createSnackbar"android:text="Snackbar"android:layout_width="match_parent"android:layout_height="wrap_content"/><android.support.design.widget.CoordinatorLayoutandroid:id="@+id/container"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"/>
</RelativeLayout>

activity中显示 Snackbar(它的用法与Toast很像,它出现后三秒之后从底部弹出,或者用户 向右滑动,它被滑出)

public class SnackbarTest extends AppCompatActivity {CoordinatorLayout container;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_snackbar_test);container = (CoordinatorLayout) findViewById(R.id.container);}public void createSnackbar(View v){ Snackbar.make(container,"Snackbar maker", Snackbar.LENGTH_LONG).show();}
}

Snackbar的第一个容器参数也可以是 LinearLayout或其他容器,当Snackbar弹出时,没有向右滑出效果。

2、添加按钮,并定义点击事件

Snackbar.make(container,"Snackbar with button",Snackbar.LENGTH_LONG).setAction("action", new View.OnClickListener() {    @Override    public void onClick(View v) {        //    }}).setActionTextColor(Color.RED).show();

3、设置Snackbar回调 onshow 和 onDismissed

自定义 Snackbar.Callback 类

public class MyCallback extends Snackbar.Callback{@Overridepublic void onDismissed(Snackbar transientBottomBar, int event) {super.onDismissed(transientBottomBar, event);if(event == DISMISS_EVENT_SWIPE || event == DISMISS_EVENT_TIMEOUT|| event == DISMISS_EVENT_CONSECUTIVE){}}@Overridepublic void onShown(Snackbar sb) {super.onShown(sb);//
    }
}

Snackbar设置callBack()

Snackbar.make(container,"Snackbar maker", Snackbar.LENGTH_LONG).setCallback(new MyCallback()).show();

补充Snackbar消失的类型:

/** Indicates that the Snackbar was dismissed via a swipe.*/
public static final int DISMISS_EVENT_SWIPE = 0;
/** Indicates that the Snackbar was dismissed via an action click.*/
public static final int DISMISS_EVENT_ACTION = 1;
/** Indicates that the Snackbar was dismissed via a timeout.*/
public static final int DISMISS_EVENT_TIMEOUT = 2;
/** Indicates that the Snackbar was dismissed via a call to {@link #dismiss()}.*/
public static final int DISMISS_EVENT_MANUAL = 3;
/** Indicates that the Snackbar was dismissed from a new Snackbar being shown.*/
public static final int DISMISS_EVENT_CONSECUTIVE = 4;

后续查看补充:

http://www.jianshu.com/p/cd1e80e64311

Coordinator 容器:

http://www.jianshu.com/p/488283f74e69

http://www.cnblogs.com/itgungnir/p/6210803.html

转载于:https://www.cnblogs.com/NeilZhang/p/7417682.html

安卓Android Support Design Library——Snackbar相关推荐

  1. android support design library eclipse,Eclipse下使用Android Design Support Library中的控件

    我只测试了 Design效果的Login和Scrolling效果控件. 最下面奉上2个demo. 1.File\import导入sdk\extras\android\support\V7\appcom ...

  2. Android Material Design Library系列教程(四)

    尊重劳动成果,转载请注明出处:http://blog.csdn.net/growth58/article/details/48754869 关注新浪微博:@于卫国 邮箱:yuweiguocn@gmai ...

  3. 高逼格UI-ASD(Android Support Design)

    绪 今年的Google IO给我们android开发着带来了三样很屌很屌的library: ASD(Android Support Design) APL(Android Percent Layout ...

  4. android layout 渲染,java – 渲染android.support.design.widget.CoordinatorLayout的问题

    我将 android studio升级到2.2.3后面临问题 问题是使用android.support.design.widget.CoordinatorLayout 它显示了这个错误 The fol ...

  5. Android Support Annotation Library使用详解

    概述 Support Annotation Library是在Android Support Library19.1版本开始引入的一个全新的函数包,它包含了诸多有用的元注解.用来帮助开发者在编译期间发 ...

  6. Program type already present: android.support.design.widget.xx

    主要提示错误意思是support版本问题. 解决方法: 统一build.gradle中所以关于support依赖的版本,有的25就都改为25,有点27就都改为27. Sync.同步即可

  7. Error: Program type already present: android.support.design.widget.CoordinatorLayout$Behavior 预览器异常

    添加依赖和自己的版本不符合,根据自己的最低版本进行导入适合的包,比如我这里是26.28就应该导入26-28版本的android包

  8. Android应用Design Support Library完全使用实例

    1 背景 上周一年一度的Google IO全球开发者大会刚刚结束,Google在Android这块除过一些优化没有太大亮点.在Android Developer和Android Developer B ...

  9. android material design之CollapsingToolbarLayout(五)

    我的项目源码托管地址:点击打开我的项目源码地址 来先看一下效果吧(虚拟机录制卡卡的,而且上传图片大小限制) 如果平时用app仔细的话可以不难发现一些介绍页面是顶部图片下边文字,或者顶部大图下面小图列表 ...

最新文章

  1. Qt调用word 例子
  2. [LeetCode] NO.292 Nim Game
  3. Git使用中的一些奇技淫巧
  4. Facebook授权登录
  5. Java 算法 摆动序列
  6. 一个数组中,除两个元素其余都出现了两次,找出这两个元素
  7. 【转】Mobile Tutorial: Using Layout to Adjust Different Form Sizes or Orientations (iOS and Android)...
  8. 服务器如何取得系统管理员权限,技巧:Windows系统如何获得管理员权限?
  9. NTFS与FAT32区别
  10. linux如何把文件导出到ftp,Linux如何利用ssh传送文件至FTP空间
  11. ept技术_intel EPT 机制详解
  12. MacBook 更新Big Sur后,虚拟机无法运行时显示该主机 CPU 类型不支持虚拟化性能计数器,模块“VPMC”启动失败,未能启动虚拟机
  13. win7笔记本外接显示器html,笔记本连显示器的步骤_笔记本如何外接显示器-win7之家...
  14. [ARCGIS]带黑边的IMG格式影像如何消除黑边?
  15. Python 抓取软科中国大学排名首页数据
  16. Go开发 之 基础语法(变量的声明、初始化、作用域,匿名变量,多变量赋值,变量逃逸分析)
  17. 好不容易把HP的ACHI搞定了,也是看的别人的,先转帖出来,以防忘了!
  18. 第三章 概念模型设计(三)
  19. 面向对象的七种原则:单一职责原则,开放关闭原则
  20. AutoHotKey脚本:用热键(hotkey)和热字符串(hotstring)简化war3秘籍输入

热门文章

  1. linux服务器分区方案
  2. python如何把二进制转文本_在python3中如何把文本转换为二进制
  3. 如何在 reducer 之间共享 state?
  4. 小数乘分数怎么算过程_广东新高考分数怎么算
  5. $(img)是什么意思_什么原因可以让你坚持跑步?医生总结5点,足以让你告别懒惰...
  6. php html小项目,使用PHP把HTML生成PDF文件的几个开源项目介绍
  7. python输出文本对齐_python-使用PIL使文本居中对齐/居中对齐?
  8. Part Six 地理定位API
  9. LKT系列加密芯片如何预置openssl生成的rsa密钥完成运算(二)
  10. 高速软件加密锁技术的发展历程