一、前言
公司主营业务:成都网站制作、成都网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出苏州免费做网站回馈大家。
Design Support Library 是 Google 发布的一个全新的兼容函数库,它可以在 Android 2.1 (Api level 7)及以上的设备中,实现 Material Design 的效果,这个函数库同时也提供了一系列控件。今天介绍的 Floating Action Button 就是其中之一。
在使用 Design Support Library 之前,需要在 build.gradle 文件中,添加依赖。
- compile 'com.android.support:design:25.3.0'
浮动操作按钮(下文简称 FAB )是 Material Design 新引入的组件,主要用于强调当前页面的一些重要操作。虽然在 Material Design 的风格里,大家都很推崇使用 FAB ,但是因为它在页面中特别的引人注目,所以在使用的时候最好慎重,只在必要的时候才去使用它,它应该使用在一些高频的操作上。
二、FAB的基本使用
FAB 使用起来非常的简单,它本身也是继承自 ImageView 的,所以之前 ImageView 的使用方法,在 FAB 上也有一些可以借鉴。
1、在布局中加载 FAB
既然 FAB 是继承自 ImageView ,所以它可以和 ImageVIew 一样被加在 xml 布局中。
加上之后,就可以发现在右下角出现一个 FAB 按钮。
FAB 有自己的属性可以被设置,这些可以从源码中了解到。
下面分别介绍 FAB 支持的几个属性和含义:
在 FAB 中,虽然可以根据 xml 属性来设定 FAB 的样式,还可以通过 Java 代码的形式修改它, FAB 也对这些属性提供了对应的方法,就不对这些设定样式的方法一一介绍了。
2、FAB的一些操作
除了修改样式的方法,FAB 还提供了一些 API 供我们操作它。
3、基本使用的 Demo
下面我们定义个 FAB ,并设定一个点击点击的时候,出现一个 SnackBar。然后使用一个按钮,控制 FAB 的显示和隐藏。
运行效果如下:
三、FAB 一些需要知道的点
虽然 FAB 使用起来非常的简单,只要了解一些属性和方法,基本上就可以直接使用了。但是 FAB 也是有一些需要特殊的特性需要知道的,有些就需要从文档中找答案了。
1、配合 SnackBar使用
Material Design 中包含的很多控件,其实是可以配合使用的。Google 推荐 FAB 方在右下角,而 SnackBar 同时也在下方,如果两个控件同时存在的时候,必然有一个会遮挡住另一个。而这个问题 Google 其实已经帮我们考虑好了。
使用 CoordinatorLayout 这个View 作为 FAB 和 SnackBar 的父布局,就可以避免出现这样的问题。CoordinatorLayout 在 Material Design 的作用非常大,有时间再详细介绍,这里只需要知道,为了避免 FAB 和 SnackBar 在布局上冲突,可以使用它。它会在 SnackBar 弹出的时候,将 FAB 上移到一个合适的位置,避免 SnackBar 遮挡它。
有关 SnackBar 的内容,可以参见另外一篇文章:用SnackBar替换掉Toast?看完再决定
2、FAB 可以不可以自定义动画
最上面的效果可以看到,FAB 的 show() 的时候的动画,是一个从小到大放大的效果,hide() 则是相反的,那么我们能不能给它指定一个动画效果呢?
这个就需要我们来查看源码了,就从 show() 方法入手。
可以看到 show() 方法最终会调用 getImpl().show() 去执行具体的显示动作,再继续看 getImpl() 的方法获取的是什么。
FloationgActionButtonImpl 是一个接口,并且为了兼容不同的Android 版本,这里做了一个兼容,对于不同的版本,使用不同的实例来做具体操作,内部源码就不一一看了,有兴趣的可以看看他们的区别,肯定就是一个处理 API 限制的方法。
FAB 的显示和隐藏动画,都是根据不同的 Android 版本各自实现的,它内部已经处理好不同版本的兼容性问题,所以是不是说明没法统一设定动画呢?其实并不是,从源码可以注意到 show() 方法是共有的,所以如果需要设定不同的动画,我们重写 show() 和 hide() 方法即可,再不济我们直接对 FAB 这个 View 进行动画操作,不去调用 FAB 原本提供的方法。
3、FAB 的图标尺寸应该是多少?
既然 FAB 中央可以指定一个图标去显示,那么这个图标的尺寸应该怎么设定。这个问题其实官方已经给了设计文档了。
可以看到,它对 normal 和 mini 样式的 FAB,都提供了不同的样式标准,我们自需要遵照这个标准即可。
四、FAB 设计标准
Material Design 自发布以来,就已经定义了设计的标准。对于 FAB ,同样有一套自己的 UE 设计标准,虽然国内很多 UE 并不参考它,但是我们了解一下对我们也有好处。
这些标准,都可以在官网上找到详细的解释:
https://material.io/guidelines/components/buttons-floating-action-button.html#buttons-floating-action-button-floating-action-button
但是其实总结起来,就几点:
五、总结
FAB 其实提供可定制的空间很少,所以一般可以考虑重写个别我们需要的逻辑。或者直接使用一些类似效果的第三方支持库。
下面推荐两个不错的库:
https://github.com/makovkastar/FloatingActionButton
https://github.com/futuresimple/android-floating-action-button
【本文为专栏作者“张旸”的原创稿件,转载请通过微信公众号联系作者获取授权】
戳这里,看该作者更多好文
标题名称:FAB 听说你还没用过?
新闻来源:http://www.shufengxianlan.com/qtweb/news37/532587.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联