FloatingActionButton

悬浮按钮,默认colorAccent来作为按钮的颜色

<android.support.design.widget.FloatingActionButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/f_button"
    android:layout_gravity="bottom|end"
    android:layout_margin="16dp"
    app:elevation="1dp"
    android:src="@mipmap/b1"/>

详解:其中的elevation指定按钮一个高度值,越高就投影的范围就越大,投影的效果就越淡。设置点击事件和普通按钮没什么区别。

效果如下

Snackbar

它是一个提示工具,但是它并不是Toast的替代品,不同场合不同应用,为了让用户进行选择,Snackbar在这方面进行了扩展,允许在提示中加入一个可以交互的按钮。比如要删除的时候,如果用户按错了,在Toast中就显示删除提醒信息,想要不删除都不行,这时候我们增加一个Undo按钮,可以取消删除这个操作,还是提示是否删除,如果不想删除就可以点击Undo进行取消操作,为用户提供了一种弥补措施,提高用户操作的容错率,从而提升用户体验。

下面看看它snackbar的用法:就配合上面的FloatingActionButton的点击事件。

FloatingActionButton fl_button = (FloatingActionButton) findViewById(R.id.f_button);
fl_button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Snackbar.make(v,"是否删除数据",Snackbar.LENGTH_SHORT).setAction("Undo", new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this,"您取消了删除",Toast.LENGTH_SHORT).show();
            }
        }).show();
    }
});

详解:点击按钮在屏幕的出现snackbar,再次点击UNDO,出现以下提示。

但是细心的同学肯定发现了,点击之后这个悬浮按钮被遮住了,这样用户视觉体验不是很好,有什么办法补救呢?有人就会说了,这还不简单只要把按钮提高一点就行了,没错这样的确做,似乎解决了。但是你不能保证如果布局里面还有其他的控件被这提高的按钮遮住呢。下面我们就来说说CoordinaterLayout解决这个问题。

CoordinaterLayout

这是一个加强版的FrameLayout,也是Design Support库提供的,在普通情况下它和FrameLayout没什么区别,但是事实上,CoordinaterLayout可以监听其所有的子控件的各种事件,然后会自动帮助我们做出最为合理的响应,就像上面留下的问题,弹出的snackbar把FloatingActionButton遮挡住了。

这里的使用也非常的简单,就把原来的FrameLayout替换,所有我说它是加强版的FrameLayout。

<android.support.design.widget.CoordinatorLayout

....

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

效果如下:

点击后:

看下效果,按钮的确向上移动了,和snackbar完全同步,是不是非常的nice!好了这就是这篇文章的全部内容了。最后提醒一下,以上控件与布局都是Design Support库提供的,需要事先加入包。

Android——MaterialDesign之四 FloatingActionButton、Snackbar、CoordinaterLayout的更多相关文章

  1. 拥抱 Android Studio 之四:Maven 仓库使用与私有仓库搭建

    使用.创造和分享 笔者曾经不思量力的思考过『是什么推动了互联网技术的快速发展?』这种伟大的命题.结论是,除了摩尔定律之外,技术经验的快速积累和广泛分享,也是重要的原因. 有人戏称,『写 Java,首先 ...

  2. Android单元测试之四:仪器化测试

    Android单元测试之四:仪器化测试 仪器化测试 在某些情况下,虽然可以通过模拟的手段来隔离 Android 依赖,但代价很大,这种情况下可以考虑仪器化的单元测试,有助于减少编写和维护模拟代码所需的 ...

  3. Android——MaterialDesign之三NavigationView

    NavigationView的使用 这里我们来讲讲在Android5.0之后推出的NavigationView的具体使用方式.和普通的侧拉菜单制作方式一样,首先所有的东西还是都放在一个DrawerLa ...

  4. Android——MaterialDesign之二DrawerLayout

    滑动菜单--DrawerLayout 滑动菜单就是把一些菜单选项隐藏起来,而不是放置主屏幕中,然后可以通过滑动的方式将菜单显示出来,具有非常的画面效果,就是类似侧边滑动. 例子:需要上一次的Toolb ...

  5. Android学习之CoordinatorLayout+FloatingActionButton+Snackbar

    CoordinatorLayout •简介 CoordinatorLayout 协调布局,可以理解为功能更强大的 FrameLayout 布局: 它在普通情况下作用和 FrameLayout 基本一致 ...

  6. 【Android - MD】之Snackbar的使用

    Snackbar 是 Android 5.0 新特性--Material Design 中的一个控件,用来代替 Toast ,Snackbar与Toast的主要区别是:Snackbar可以滑动退出,也 ...

  7. Android——MaterialDesign之一Toolbar

    Toolbar 由于ActionBar设计原因只能存在活动的顶部,从而不能实现MaterialDesign的效果,现在推荐使用Toolbar,继承Actionbar,但是比起它更加的灵活. 设置主题: ...

  8. 安卓Android Support Design Library——Snackbar

    介绍: Snackbar是Android Support Design Library库支持的一个控件,用于在界面下面提示一些关键信息,跟Toast不同的地方是SnackBar允许用户向右滑动消除它, ...

  9. Android Design Support Library——Snackbar

    Snackbar是一个轻量级控件,它可以很方便的提供消息的提示和动作反馈,类似于Toast.Snackbar包括一段文字信息与一个可选的操作按钮,超时自动隐藏,也可以通过滑动来删除.效果如下所示: S ...

随机推荐

  1. Python中的Numpy入门教程

    1.Numpy是什么 很简单,Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy.matplotlib一起使用.其实,list已经提供了类似于矩阵的表示形式,不过nu ...

  2. Linux 实例如何开启 MySQL 慢查询功能

    运行 MySQL 时,查询速度比较慢的语句对数据库的影响非常大,这些慢语句大多是写的不够合理或者大数据环境下多表并发查询造成的.MySQL 自带慢查询功能,能记录查询时间超过参数 long_query ...

  3. 如何让Node.js运行在浏览器端

    Node.js又称服务端JavaScript.今天我为了解决一个问题,通过搜索引擎找到了如何将Node.js转成浏览器端可以运行的javascript.尽管这种方式有其局限性,但是还是可以用的. 1. ...

  4. 多线程爬虫爬取详情页HTML

    注意:如果想爬取详情页的信息请按须添加方法 import requests import os import re import threading from lxml import etree #爬 ...

  5. pyQT4和pyQT5的主要模块介绍

    下面简单介绍一下pyQT4和pyQT5的主要模块 pyQT4 的主要模块 QtCore 模块包括了核心的非GUI功能,该模块用来对时间.文件.目录.各种数据类型.流.网址.媒体类型.线程或进程进行处理 ...

  6. HDU-1698-Just a Hook-线段树区间修改

    In the game of DotA, Pudge’s meat hook is actually the most horrible thing for most of the heroes. T ...

  7. Luogu P3321 [SDOI2015]序列统计

    一道不错的多项式好题.还涉及了一些数论内容. 首先我们看到题目是求乘积模\(m\)的方案数,考虑到这种方案数我们一般都可以用生成函数来做. 但显然卷积的下标有加(FFT,NTT等)有位运算(FWT)但 ...

  8. 详解JSOUP的Select选择器语法

    本文参考:JSOUP中文文档 问题 你想使用类似于CSS或jQuery的语法来查找和操作元素. 方法 可以使用Element.select(String selector) 和 Elements.se ...

  9. OSGI基础环境搭建

    1.安装jdk,步骤自行搜索 2.下载eclipse,用luna版本,下载地址: https://pan.baidu.com/s/1gdfmW5znU4fltsLCAo8tkg 提取码: nrg7 3 ...

  10. 小菜鸡儿的第三次OO博客

    规格化设计历史 规格化设计的历史目前网上的资料并不多,百度谷歌必应也表示无能为力...... 在这里结合现实情况讲一讲自己对程序规格化的理解,首先代码规格化对代码的影响是间接的,或许它不能让你代码里面 ...