:speechballoon: SSCompose-CustomInfoBar :speechballoon:
July 18, 2024 ยท View on GitHub
:speech_balloon: SSCompose-CustomInfoBar :speech_balloon:
Welcome to our SSCompose-CustomInfoBar Library! :tada: Tired of generic snackbars? This Jetpack Compose library offers a powerful and customizable way to display informative messages within your app.
:zap: Features
- Content: Add :speech_balloon: text, icons, or even custom composables to your info bar for ultimate flexibility.
- Position: Display the info bar strategically at the :point_up: top or :point_down: bottom of your screen.
- Duration: Control how long the info bar stays visible, from indefinite to short :zap: or long : hourglass: durations.
- Styles: Predefined styles like :warning: error, :information_source: info, and warning are available, or craft your own style with custom background, text color, and icons.
- Swipe to dismiss: Users can dismiss the info bar with a simple swipe, providing an interactive touch.
- Look & Feel: :paintbrush: Customize the info bar's shape, color, and elevation to seamlessly match your app's design.
- Theming: Integrate with Jetpack Compose's theming system for a consistent and beautiful look across your app.
- Animations: :tada: Liven up your info bars with various built-in entrance and exit animations.
- Offline Notifications: :signal_strength: A constructor flag which allows to automatically displays an info bar giving "you are offline" notification.
- Action button: :+1: Optional action button to show on InfoBar.
- On Dismiss Callback: Get notified about bar dismissal.
- Queueing System: :repeat: Display multiple info bars sequentially.
NOTE:
- Scroll to show and hide info bar feature work only with LazyListState.
- If the duration of infoBar is infinite then the queue feature won't work.
- Currently there is no limit to how many info bars can be added to queue for displaying.
:framed_picture: Preview
| Full Preview |
|---|
| Default Demo | Error Themed | Warning Themed |
|---|---|---|
![]() | ![]() | ![]() |
| Success Themed | Annotated Strings | Gradient Background |
|---|---|---|
![]() | ![]() | ![]() |
| SVG Background | PNG Background | Action Button |
|---|---|---|
![]() | ![]() | ![]() |
:books: How it works:
-
Add the dependency in your app's build.gradle file
dependencies { implementation("com.github.SimformSolutionsPvtLtd:SSCompose-CustomInfoBar:1.0") } -
Add the JitPack repository
For latest Android Studio, in settings.gradle file inside
dependencyResolutionManagementblockdependencyResolutionManagement { repositories { ... maven { url = uri("https://jitpack.io") } } } -
Create ComposeInfoHost with default parameters to host ComposeInfoBar (NOTE: Here we are not passing an custom ComposeInfoBar so it will use a default implementation. To show custom ComposeInfoBar check out SSComposeInfoHost-Customisation-Guide)
val composeInfoHostState by remember { mutableStateOf(SSComposeInfoHostState()) } SSComposeInfoHost( modifier = Modifier .fillMaxSize(), composeHostState = composeInfoHostState ) { MainComposable() } -
Show composeInfoBar anywhere in your project
val coroutineScope = rememberCoroutineScope() var duration by remember { mutableStateOf(SSComposeInfoDuration.Short) } coroutineScope.launch { composeInfoHostState.show( infoBarData = SSComposeInfoBarData(title, description), duration = duration ) } -
For full customisation of SSComposeInfoBar checkout SSComposeInfoBar-Customisation-Guide
:heart: Find this samples useful?
Support it by joining stargazers :star: for this repository.
:handshake: How to Contribute?
Whether you're helping us fix bugs, improve the docs, or a feature request, we'd love to have you! :
muscle:
Check out our Contributing Guide for ideas on contributing.
:lady_beetle: Bugs and Feedback
For bugs, feature requests, and discussion use GitHub Issues.
:rocket: Other Mobile Libraries
Check out our other libraries Awesome-Mobile-Libraries.
:balance_scale: License
Distributed under the MIT license. See LICENSE for details.








