https://github.com/razir/ProgressButton
Android Progress Button
https://github.com/razir/ProgressButton
android button material-design progress-bar progress-button
Last synced: 30 days ago
JSON representation
Android Progress Button
- Host: GitHub
- URL: https://github.com/razir/ProgressButton
- Owner: razir
- Created: 2019-04-19T10:28:06.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2021-03-16T19:57:51.000Z (about 4 years ago)
- Last Synced: 2024-10-27T06:38:59.259Z (6 months ago)
- Topics: android, button, material-design, progress-bar, progress-button
- Language: Kotlin
- Homepage:
- Size: 1.33 MB
- Stars: 856
- Watchers: 11
- Forks: 77
- Open Issues: 9
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
- awesome-kotlin - ProgressButton - Android Progress Button (Libraries)
README
# Progress Button Android [  ](https://bintray.com/razir/maven/progressbutton/2.1.0/link)
 
#### 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

```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