Welcome to our SSCompose-CustomInfoBar Library! π Tired of generic snackbars? This Jetpack Compose library offers a powerful and customizable way to display informative messages within your app.
- Content: Add π¬ text, icons, or even custom composables to your info bar for ultimate flexibility.
- Position: Display the info bar strategically at the βοΈ top or π bottom of your screen.
- Duration: Control how long the info bar stays visible, from indefinite to short β‘ or long : hourglass: durations.
- Styles: Predefined styles like β οΈ error, βΉοΈ 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: ποΈ 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: π Liven up your info bars with various built-in entrance and exit animations.
- Offline Notifications: πΆ A constructor flag which allows to automatically displays an info bar giving "you are offline" notification.
- Action button: π Optional action button to show on InfoBar.
- On Dismiss Callback: Get notified about bar dismissal.
- Queueing System: π 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.
| Full Preview | 
|---|
| CustomInfobar-Preview.mp4 | 
| Default Demo | Error Themed | Warning Themed | 
|---|---|---|
|  |  |  | 
| Success Themed | Annotated Strings | Gradient Background | 
|---|---|---|
|  |  |  | 
| SVG Background | PNG Background | Action Button | 
|---|---|---|
|  |  |  | 
- 
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 
Support it by joining stargazers β for this repository.
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.
For bugs, feature requests, and discussion use GitHub Issues.
Check out our other libraries Awesome-Mobile-Libraries.
Distributed under the MIT license. See LICENSE for details.
