浅谈FloatingActionButton(悬浮按钮)

时间:2021-10-22 20:40:36

一、介绍

这个类是继承自ImageView的,所以对于这个控件我们可以使用ImageView的所有属性

android.support.design.widget.FloatingActionButton

二、使用准备, 在as 的 build.grade文件中写上

compile 'com.android.support:design:22.2.0'

三、使用说明

xml文件中,注意蓝色字体部分

<android.support.design.widget.FloatingActionButton
android:id="@+id/floatingActionButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_centerInParent="true"
android:src="@mipmap/ok"
app:borderWidth="0dp"
app:backgroundTint="#FF4011"
app:rippleColor="#33728dff"
app:elevation="8dp"
app:pressedTranslationZ="16dp"
/>

可以看到我们使用了app属性,则需要在根容器中添加这个属性。

xmlns:app="http://schemas.android.com/apk/res-auto"

属性介绍:

1、app:borderWidth=""------------------边框宽度,通常设置为0 ,用于解决Android 5.X设备上阴影无法正常显示的问题

2、app:backgroundTint=""---------------按钮的背景颜色,不设置,默认使用theme中colorAccent的颜色

3、app:rippleColor=""--------------------点击的边缘阴影颜色

4、app:elevation=""----------------------边缘阴影的宽度

5、app:pressedTranslationZ="16dp"-----点击按钮时,按钮边缘阴影的宽度,通常设置比elevation的数值大

另外我们希望点击按钮一个颜色,正常状态一个颜色 以提高用户体验,那么就是drawable文件夹中创建文件 floatbutton.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/colorNormal"></item>
<item android:state_pressed="true" android:drawable="@color/colorPressed"></item>
</selector>

然后我们设置FloatActionButton的backgroud为这个drawable文件即可,同时app:backgroundTint=""属性也可以不再设置

<android.support.design.widget.FloatingActionButton
android:id="@+id/floatingActionButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="@drawable/floatbutton"
android:src="@mipmap/ok"
app:borderWidth="0dp"
app:rippleColor="#33728dff"
app:elevation="8dp"
app:pressedTranslationZ="16dp"
/>

效果图:

浅谈FloatingActionButton(悬浮按钮)

-------------------------------------------------------------------------------------------------------------

其他相关:

浅谈RecyclerView(完美替代ListView,GridView)

浅谈GridLayout(网格布局)

浅谈TabLayout(ViewPager+Tab联动)

浅谈DrawerLayout(抽屉效果)