『Android基础入门』悬浮按钮
1.简介
浮动操作按钮 (FAB) 在屏幕上执行主要或最常见的操作。它出现在所有屏幕内容的前面,通常为圆形,中心有一个图标。所以并不是所有的界面都适合设计悬浮按钮,同样并不是所有的功能都设置成悬浮按钮。如常见的快速创建邮件和便签,或者在地图板块中快速定位到当前位置等等功能都是常用且主要的,所以剋设置成悬浮按钮。要注意避免在一个界面中设置过多的悬浮按钮,这样会冲淡界面主题功能,而且占据屏幕空间。
更多使用和设计技巧详看:按钮:浮动操作按钮
2.引入依赖
打开模块设置
添加库依赖
添加悬浮按钮floatingactionbutton
的库依赖
在build.gradle
中可见刚才添加的库依赖,所以我们其实也可通过直接复制粘贴,然后sync now
来添加
java
implementation 'com.getbase:floatingactionbutton:1.10.1'
3.简单使用
我使用相对布局来设置这个悬浮按钮,其下有很多属性,常用的如下:
- fab_icon:设置图标
- fab_size:设置图标大小,取值可以是normal(56dp)和mini(40dp)
- fab_colorNormal:按钮的颜色,默认是蓝色
- fab_title: 设置标签文本内容
xml
<com.getbase.floatingactionbutton.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
app:fab_icon="@drawable/ic_email"
app:fab_size="normal"
app:fab_colorNormal="#fee">
</com.getbase.floatingactionbutton.FloatingActionButton>
4.悬浮容器
FloatingActionsMenu可以用来放置多个悬浮组件。常见属性如下:
- fab_expandDirection:设置子按钮列表弹出方向,默认向上弹出
- fab_labelsPosition: 设置文字标签的位置,子按钮图标的左边或右边
- fab_labelStyle:设置弹出的子按钮的文字标签的样式
- fab_addButtonSize:容器的大小,取值可以是normal,mini
xml
<com.getbase.floatingactionbutton.FloatingActionsMenu
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
app:fab_addButtonSize="mini"
app:fab_expandDirection="left"
tools:ignore="RelativeOverlap">
<com.getbase.floatingactionbutton.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:fab_colorNormal="#FFF"
app:fab_colorPressed="@color/design_default_color_primary"
app:fab_size="mini" />
<com.getbase.floatingactionbutton.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:fab_colorNormal="#FFF"
app:fab_colorPressed="@color/design_default_color_primary"
app:fab_size="mini" />
</com.getbase.floatingactionbutton.FloatingActionsMenu>
5.自定义labelStyle
在colors.xml中定义好样式style标签
xml
<style name="LabelStyle">
<item name="android:background">@drawable/bg_label</item>
<item name="android:textColor">#FFF</item>
</style>
创建一个新的drawable resource定义具体样式
xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!--前两位透明度,后6位颜色值-->
<solid android:color="#b2000000"/>
<corners android:radius="100dp"/>
<padding
android:right="8dp"
android:left="8dp"
android:top="2dp"
android:bottom="2dp"/>
</shape>
在activity_main.xml中使用
6.效果展示
7.参考资料
Material Design之-交互效果炸裂的 FloatingActionMenu - 掘金 (juejin.cn)
FloatingActionButton(悬浮按钮) - 简书 (jianshu.com)
安卓drawable基本属性corners、solid、gradient、stroke、size、padding详解 - 简书 (jianshu.com)