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
dependencyResolutionManagement
blockdependencyResolutionManagement { 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.