LavaFab
LavaFab copied to clipboard
💧 Android floating action button menu with "lava" animation
LavaFab

This is an Android project allowing to animate a Floating Action Button menu with "lava" animation.
USAGE
Just add LavaFab view in your layout XML and LavaFab library in your project via Gradle:
dependencies {
implementation 'com.bitvale:lavafab:1.0.1'
}
XML
<com.bitvale.lavafab.LavaFab
android:id="@+id/lava_fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:lavaBackgroundColor="@color/color_pink"
app:lavaChild="left|top"
app:lavaParentSize="@dimen/fab_size"
app:lavaParentIcon="@drawable/ic_parent"
app:lavaLeftIcon="@drawable/ic_left"
app:lavaTopIcon="@drawable/ic_right"
app:lavaDrawShadow="true" />
You must use the following properties in your XML to change your LavaFab.
Properties:
-
app:lavaBackgroundColor
(color) -> default ?attr/colorAccent -
app:lavaParentSize
(dimension) -> default 56dp -
app:lavaDrawShadow
(boolean) -> default false -
app:lavaChild
(flag) -> default left|top -
app:lavaParentIcon
(drawable) -> default none -
app:lavaLeftIcon
(drawable) -> default none -
app:lavaLeftTopIcon
(drawable) -> default none -
app:lavaTopIcon
(drawable) -> default none -
app:lavaRightTopIcon
(drawable) -> default none -
app:lavaRightIcon
(drawable) -> default none -
app:lavaRightBottomIcon
(drawable) -> default none -
app:lavaBottomIcon
(drawable) -> default none -
app:lavaLeftBottomIcon
(drawable) -> default none
Kotlin
with(lava_fab) {
setLavaBackgroundResColor(R.color.fab_color)
setParentOnClickListener { lava_fab_center.trigger() }
setChildOnClickListener(Child.TOP) { lava_fab_center.collapse() }
setChildOnClickListener(Child.LEFT) { // some action }
enableShadow()
setParentIcon(R.drawable.ic_parent)
setChildIcon(Child.TOP, R.drawable.ic_child_top)
setChildIcon(Child.LEFT, R.drawable.ic_child_left)
}
LICENCE
LavaFab by Alexander Kolpakov is licensed under an Apache License 2.0.