Loading repository data…
Loading repository data…
Shashank02051997 / repository
Make your native Snackbar and Toast Fancy. A library that takes the standard Snackbar and Toast to the next level with a variety of styling options. A highly customizable, powerful and easy-to-use alerting library for Android. This library allows you to show messages or alerts in your app quickly and easily.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Make your native Snackbar Fancy. A library that takes the standard Snackbar to the next level with a variety of styling options. A highly customizable, powerful and easy-to-use alerting library for Android. This library allows you to show messages or alerts in your app quickly and easily.
This library allows you to show messages or alerts in your app quickly and easily. It can be used as an alternative to Snackbar or Toast and offers a plethora of useful features and customization options for you to play with.
It has been written 100% in Kotlin. ❤️
Add this in your root build.gradle file (not your module build.gradle file):
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
Add this to your module's build.gradle file (make sure the version matches the JitPack badge above):
dependencies {
...
implementation 'com.github.Shashank02051997:FancyFlashbar-Android:1.2'
}
It is recommended to check the sample project to get a complete understanding of all the features offered by the library.
The library offers a huge amount of customization options and leverages the Builder pattern for ease of use. You will find details of each of these features described below.
Flashbar attaches a full-height, full-width view (FlashbarContainerView) to the decor view of the Activity and places a full width, dynamic height view(FlashbarView) inside it. These classes are internal classes and are not exposed for public use.
Here's an example of showing a basic flashbar,
new Flashbar.Builder(this)
.gravity(Flashbar.Gravity.BOTTOM)
.message("Congratulations! You have reached 5K points")
.build();
You can specify the duration (in millis) for which you want the flashbar to be displayed. The default duration is infinite, i.e. it won't dismiss automatically if you do not specify any duration. You can also use these constants, DURATION_SHORT or DURATION_LONG for convenience.
new Flashbar.Builder(this)
.gravity(Flashbar.Gravity.TOP)
.duration(500)
.message("This is a flashbar with duration")
.build();
You can show the flashbar either at the top or at the bottom of the screen using the gravity property. By default, it is shown at the bottom.
new Flashbar.Builder(this)
.gravity(Flashbar.Gravity.TOP)
.message("Nice work! You've successfully done something that makes you great.")
.build();
Or,
new Flashbar.Builder(this)
.gravity(Flashbar.Gravity.BOTTOM)
.message("Flashbar is shown at the bottom")
.build();
You can show an optional title in the flashbar. You can also customize the color, size, typeface and appearance of it.
new Flashbar.Builder(this)
.gravity(Flashbar.Gravity.BOTTOM)
.title("Success!")
.message("Daily whatsapp status updated successfully")
.build();
You can change the color using titleColor(), size using titleSizeInSp(), titleSizeInPx(), typeface using titleTypeface() and appearance using titleAppearance(). Also, look out for other variants of this methods.
new Flashbar.Builder(this)
.gravity(Flashbar.Gravity.BOTTOM)
.title("Success!")
.message("Daily whatsapp status updated successfully")
.titleColorRes(R.color.white)
.titleSizeInSp(12f)
.titleAppearance(R.style.CustomTextStyle)
.titleTypeface(Typeface.createFromAsset(getAssets(), "ShineBright.ttf"))
.build();
You can show an optional message in the flashbar. You can also customize the color, size and appearance of it.
new Flashbar.Builder(this)
.gravity(Flashbar.Gravity.BOTTOM)
.title("Hello World!")
.message("This is a short message. But your message can be of any length and the view will dynamically adjust itself.")
.build();
You can change the color using messageColor(), size using messageSizeInSp(), messageSizeInPx(), typeface using messageTypeface() and appearance using messageAppearance(). Also, look out for other variants of this methods.
new Flashbar.Builder(this)
.gravity(Flashbar.Gravity.TOP)
.message("This is a short message")
.messageColor(ContextCompat.getColor(this, R.color.white))
.messageSizeInSp(16f)
.messageTypeface(Typeface.createFromAsset(assets, "BeautifulAndOpenHearted.ttf"))
.build();
The overlay creates a dim effect over the entire screen bringing more focus on the flashbar and its content. It is automatically added/removed along with the flashbar.
new Flashbar.Builder(this)
.gravity(Flashbar.Gravity.BOTTOM)
.title("Notifications aren't allowed")
.message("To get notification about added transcations, you need to allow them in the settings.")
.showOverlay()
.build();
You can also customize the overlay color using overlayColor() and also make the overlay block any click/touch events using overlayBlockable().
new Flashbar.Builder(this)
.gravity(Flashbar.Gravity.TOP)
.title("Hello World!")
.message("You can show a modal overlay to give a dim effect in the entire screen.")
.showOverlay()
.overlayColorRes(R.color.modal)
.overlayBlockable()
.build();
There are two types of action buttons available - positive and negative (placed at the bottom).
You can also customize its appearance in a lot of ways,
new Flashbar.Builder(this)
.gravity(Flashbar.Gravity.BOTTOM)
.title("Alisa Williams")
.message("Yeah, i'm up to it! Wanna grab something to eat today or you're bu...")
.primaryActionText("Reply")
.primaryActionTextColorRes(R.color.colorAccent)
.build();
You can also listen to its tap/click events through the OnActionTapListener,
new Flashbar.Builder(this)
.gravity(Flashbar.Gravity.BOTTOM)
.title("Alisa Williams")
.message("Yeah, i'm up to it! Wanna grab something to eat today or you're bu...")
.primaryActionText("Reply")
.primaryActionTextSizeInSp(20f)
.primaryActionTextColorRes(R.color.colorAccent)
.primaryActionTapListener(object : Flashbar.OnActionTapListener {
override fun onActionTapped(bar: Flashbar) {
bar.dismiss()
}
})
.build();
You can customize the positive and negative buttons in the same way as the primary button. These buttons appear at the bottom part of the view. You can show the positive, or negative or both the buttons. You can also listen to the tap events in the same way as before.
new Flashbar.Builder(this)
.gravity(Flashbar.Gravity.BOTTOM)
.title("Can we notify you ?")
.message("Please allow us to send you notification")
.icon(R.drawable.email)
.showIcon()
.positiveActionText("Allow")
.negativeActionText("No, other time")
.positiveActionTapListener(object : Flashbar.OnActionTapListener {
override fun onActionTapped(bar: Flashbar) {
bar.dismiss()
}
})
.negativeActionTapListener(object : Flashbar.OnActionTapListener {
override fun onActionTapped(bar: Flashbar) {
bar.dismiss()
}
})
.build();
You can show an icon on the left side of the view using showIcon() which will show the default icon.
new Flashbar.Builder(this)
.gravity(Flashbar.Gravity.BOTTOM)
.title("Congratulations!")
.message("Congratulations! You have reached 5K points")
.icon(R.drawable.trophy)
.showIcon()
.enableSwipeToDismiss() //By default this feature is disabled
.build();
You can customize the enter/exit animation of the flashbar. You can also add custom animations to the icon for drawing attention towards it. The library provides a fluent API-styled animation framework to customize these animations.
You can start animating the bar using FlashAnim.with(this).animateBar(). You can change the duration of the animation using duration(), apply custom interpolators using interpolator() or choose from a set of interpolators available, add alpha transition using alpha(), etc.
new Flashbar.Builder(this)
.gravity(Flashbar.Gravity.BOTTOM)
.title("Stay up-to-date!")
.message("This way, you and your friends will see messages instantly on your phones.")
.enableSwipeToDismiss() //By default this feature is disabled
.icon(R.drawable.notification)
.showIcon()
.positiveActionText("Enable Notification")
.negativeActionText("Not Now")
.positiveActionTapListener(new Flashbar.OnActionTapListener() {
@Override
public void onActionTapped(@NotNull Flashbar bar) {
bar.dismiss();
}
})
.negativeActionTapList