A circular button made of paper that lifts and emits ink reactions on press.
This widget supports two sizes according to Promoted Actions pattern: normal and mini.
Like an
ImageView
this widget require android:src
attribute. According to official documentation this drawable should be not more than 24dp
.Gradle dependency
dependencies {
compile 'com.shamanland:fab:0.0.5'
}
Screenshots
Show/hide when user scrolls down/up
Set custom OnTouchListener for scrollable view:
import com.shamanland.fab.FloatingActionButton;
import com.shamanland.fab.ShowHideOnScroll;
// ...
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
ListView listView = (ListView) findViewById(android.R.id.list);
listView.setOnTouchListener(new ShowHideOnScroll(fab));
With custom animations:
listView.setOnTouchListener(new ShowHideOnScroll(fab, R.anim.custom_show, R.anim.custom_hide));
Customizing
Use theme to customize all floating buttons in your app:
Declare own style:
<style name="AppTheme.Fab" parent="FloatingActionButton">
<item name="floatingActionButtonColor">@color/my_fab_color</item>
</style>
Link this style in your theme:
<style name="AppTheme" parent="android:Theme">
<item name="floatingActionButtonStyle">@style/AppTheme.Fab</item>
</style>
Customizing in layout.xml:
<com.shamanland.fab.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_action_my"
app:floatingActionButtonColor="@color/my_fab_color"
app:floatingActionButtonSize="mini"
/>
Customizing in java-code:
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setSize(FloatingActionButton.SIZE_MINI);
fab.setColor(Color.RED);
// NOTE invoke this method after setting new values!
fab.initBackground();
// NOTE standard method of ImageView
fab.setImageResource(R.drawable.ic_action_my);