Android Material悬浮响应式可操作按钮Fab Sp

2019-03-15  本文已影响0人  抬头仰望放肆的微笑v

介绍

可以打开和收起菜单的浮动操作按钮,菜单item可以像标准menu那样在xml里设置,还可以定义fab的位置。

项目地址1: https://github.com/yavski/fab-speed-dial

项目地址2: https://github.com/kobakei/MaterialFabSpeedDial

开始

添加依赖

dependencies {

compile 'io.github.yavski:fab-speed-dial:1.0.6'

}

新建menu文件,然后在这里新建menu_button.xml文件

<menu xmlns:android="http://schemas.android.com/apk/res/android"

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

<item

    android:id="@+id/action_call"

    android:icon="@drawable/ic_call_black_24px"

    android:title="@string/menu_item_call"

    android:orderInCategory="0"/>

<item

    android:id="@+id/action_text"

    android:icon="@drawable/ic_chat_bubble_outline_black_24px"

    android:title="@string/menu_item_text"

    android:orderInCategory="1"/>

<item

    android:id="@+id/action_email"

    android:icon="@drawable/ic_mail_outline_black_24px"

    android:title="@string/menu_item_email"

    android:orderInCategory="2"/>

</menu>

android:orderInCategory这个属性在需要给item设置背景色是需要添加,不然无法对应

菜单文件建好之后直接在布局引用

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"

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

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:padding="16dp">

<io.github.yavski.fabspeeddial.FabSpeedDial

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_gravity="bottom|end"

        app:fabGravity="bottom_end"

        app:fabMenu="@menu/menu_main"

        app:miniFabBackgroundTint="@android:color/white"

        app:miniFabDrawableTint="?attr/colorPrimaryDark"

        app:miniFabTitleTextColor="?attr/colorPrimaryDark" />

</FrameLayout>

这里需要注意一下FabSpeedDial的宽高不能固定否则不显示

属性

 app:fabMenu ="@menu/menu_main"  直接引用建好的菜单xml

app:fabGravity ="bottom_end"  设置主按钮的位置

app:fabDrawable="@mipmap/color_select_icon" 设置主按钮icon

app:fabBackgroundTint="@color/black"设置按钮背景色

app:miniFabBackgroundTintList="@array/fab_menu_item_colors" 这个比较重要引用一个color组用来设置菜单按钮的背景色

<integer-array name="fab_menu_item_colors">

<item>@color/color1</item>

<item>@color/color2</item>

<item>@color/color3</item>

<item>@color/color4</item>

<item>@color/color5</item>

<item>@color/color6</item>

</integer-array>

这里的item数要与menu里面的item数一致

其他属性可以借鉴github

上一篇下一篇

猜你喜欢

热点阅读