DEPRECATED

With the addition of Snackbars to the android design support library this library is no longer under development.

SnackBar

Android Arsenal API

Designed after the docs at Google Material Design

screenshot

Features

Using SnackBar

Using SnackBar is simple, just one line of code is needed!

SnackBar.show(getActivity(), R.string.hello_world);

Or if you want to set an action

SnackBar.show(getActivity(), R.string.hello_world, R.string.undo, onClickListener);

Customization

SnackBars can be customized by creating a SnackBarItem with the Builder factory

 new SnackBarItem.Builder(getActivity())
.setMessageResource(R.string.message)
.setActionMessageResource(R.string.action)
.setObject(myObject)
.setActionClickListener(myClickListener)
.setActionMessageColorResource(R.color.my_red)
.setSnackBarMessageColorResource(R.color.my_yellow)
.setSnackBarBackgroundColorResource(R.color.my_green)
.setInterpolatorResource(android.R.interpolator.accelerate_decelerate)
.setMessageTextAppearance(R.style.MessageTextAppearance)
.setActionTextAppearance(R.style.ActionTextAppearance)
.setDuration(5000)
.setSnackBarListener(myListener)
.show();

SnackBars can also be styled via the application theme

The following attributes can be used for styling a SnackBar

   <attr name="snack_bar_background_color" format="color" />
   <attr name="snack_bar_text_color" format="color" />
   <attr name="snack_bar_text_action_color" format="color" />
   <attr name="snack_bar_duration" format="integer" />
   <attr name="snack_bar_interpolator" format="reference" />
   <attr name="snack_bar_message_typeface" format="string" />
   <attr name="snack_bar_action_typeface" format="string" />
   <attr name="snack_bar_message_text_appearance" format="reference" />
   <attr name="snack_bar_action_text_appearance" format="reference" />
   <attr name="snack_bar_offset" format="reference" />
   ...
   ...
   ...
   ...
   <style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowBackground">@color/background_material_light</item>
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="snack_bar_text_color">@color/my_color</item>
        <item name="snack_bar_duration">5000</item>
    </style>

Receive callbacks from SnackBars with an Object

// Called when the SnackBar begins to animate
@Override
publc void onSnackBarStarted(Object object){
}

// Called when the SnackBar finishes with its animation
// Will be called if the action button is pressed
@Override
public void onSnackBarFinished(Object object, boolean actionPressed){
}

Canceling SnackBars

When your activity goes into a Paused or Destroyed state, remove the SnackBars from the queue

SnackBar.cancelSnackBars(getActivity());

Including in your project

To include SnackBar in your project, add the following to your build.gradle file.

repositories {
   maven { url 'https://dl.bintray.com/kennyc1012/maven' }
}

dependencies {
    compile 'com.kennyc:snackbar:2.5'
}

Contribution

Pull requests are welcomed and encouraged. If you experience any bugs, please file an issue