
Floating Action Button,简称FAB,作为材料设计中(众多)独特的UI元素之一,用于特定场景中基本或有推动等作用的行为中。因为在指定屏幕中,会被频繁的访问(译者注:如点击,触摸等),所以,我认为正确处理FAB的每一个细节是件很重要的事情。然而,有很多应用,并没有以材料设计指导为规范,从而错误的使用着FAB,当然,这也包括一些谷歌的自家应用(我就知道!)。
巨大的差异。
通过分析一些运行在最新发布版L上,并且使用FAB的应用,我惊讶的发现了应用之间使用FAB的差异。当然,FAB 可能就是一个圆形按钮,但是仍然有规范,例如,锚点与屏幕边界的距离,Action图标尺寸,水波反馈,视图标高和阴影。很多时候,它就像一个不能正确工作的三方库,但是,对于那些独立使用FAB的应用,它不应被设计的过于复杂(例如,没有展开更多选项等功能)。
让我们拭目以待接下来的事情(尝试了很多应用,但是,我只选择了少数能够进行立即测试的)。










正确的FAB
所以,这个独具特色的按钮,在材料设计中的规范是怎样的呢?从上面的这些对照中可以看出,Messenger可以说是最精准的运用了FAB。

- 适当的水波反馈(可以在按钮的任意地方产生)
- 静止标高6dp,按下后的标高12dp(或者translationZ = 6dp)
- Action图标需要合适的宽度(一般2dp的画笔宽度)和尺寸(24dp以及2dp的内边距)
- FAB的锚点,距右和下边距16dp
我强烈建议,检查您在App中所使用的FAB是否已按照推荐规范正确的实现。否则FAB会因为Material属性与app中其它Material元素不同而看起来有些不搭配。
关心设计细节
如果认为,这属于太挑剔或者太细微而不能引起用户的注意。那么我想引用谷歌的文章为什么要把按钮向左移动3像素中的一句话:
Getting design details right can create positive emotional states that actually make products easier to use. (正确把握设计的细节,可以营造积极的情绪状态,从而让产品更好用)
毕竟,作为把产品交付给用户的负责人(设计师,工程师,或者团队中的任何一个人),如果你自己都不关心细节,谁又会去做这件事呢?所以,当做自己的事情,请把FAB做好。
Special thanks to Andhie for making a sample app meant for screenshot purpose with the right implementation of FAB using the Material Design Support Library.