Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/razir/ProgressButton
Android Progress Button
https://github.com/razir/ProgressButton
android button material-design progress-bar progress-button
Last synced: 13 days ago
JSON representation
Android Progress Button
- Host: GitHub
- URL: https://github.com/razir/ProgressButton
- Owner: razir
- Created: 2019-04-19T10:28:06.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-03-16T19:57:51.000Z (over 3 years ago)
- Last Synced: 2024-08-01T01:30:42.140Z (3 months ago)
- Topics: android, button, material-design, progress-bar, progress-button
- Language: Kotlin
- Homepage:
- Size: 1.33 MB
- Stars: 859
- Watchers: 12
- Forks: 77
- Open Issues: 8
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
- awesome-kotlin - ProgressButton - Android Progress Button (Libraries)
README
# Progress Button Android [ ![Download](https://api.bintray.com/packages/razir/maven/progressbutton/images/download.svg?version=2.1.0) ](https://bintray.com/razir/maven/progressbutton/2.1.0/link)
![basic progress button example](https://raw.githubusercontent.com/razir/ProgressButton/master/gif/progress_default.gif) ![progress cebter button example](https://raw.githubusercontent.com/razir/ProgressButton/master/gif/progress_center.gif)
![mixed progress button example](https://raw.githubusercontent.com/razir/ProgressButton/master/gif/mixed.gif)#### Article on ProAndroidDev.com explaining how it works
https://proandroiddev.com/replace-progressdialog-with-a-progress-button-in-your-app-14ed1d50b44#### Add progress to any button by few lines of code without layout changes
### Main features:
- No layout changes required
- Few lines of code to add
- Easy configurable
- Customizable
- Built in fade animations## Gradle dependency
```
allprojects {
repositories {
mavenCentral()
}
}
```
```
implementation 'com.github.razir.progressbutton:progressbutton:2.1.0'
```## How to use
### Basic example
```kotlin
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// bind your button to activity lifecycle
bindProgressButton(myButton)// (Optional) Enable fade In / Fade out animations
myButton.attachTextChangeAnimator()// Show progress with "Loading" text
myButton.showProgress {
buttonTextRes = R.string.loading
progressColor = Color.WHITE
}// Hide progress and show "Submit" text instead
myButton.hideProgress(R.string.submit)
}
```### Showing AnimatedDrawable
![animated drawable button example](https://raw.githubusercontent.com/razir/ProgressButton/master/gif/animated_drawable.gif)
```kotlin
val animatedDrawable = ContextCompat.getDrawable(this, R.drawable.animated_check)
//Defined bounds are required for your drawable
animatedDrawable.setBounds(0, 0, 40, 40)
button.showDrawable(animatedDrawable) {
buttonTextRes = R.string.saved
}
```### Detailed doc: [here](DetailedDoc.md)
### Java samples: [here](app/src/main/java/com/github/razir/progressexample/java)
### Min SDK 14
### Avoiding memory leaks
To avoid memory leaks you always need to bind your button to a LifecycleOwner (usually Activity, or Fragment) :```kotlin
[LifecycleOwner].bindProgressButton(button)
```### License
Apache 2.0### Author
Anton Hadutski