Skip to content

Repository files navigation

Progress Button Android Download

basic progress button exampleprogress cebter button examplemixed progress button example

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

overridefunonCreate(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

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

Java samples: here

Min SDK 14

Avoiding memory leaks

To avoid memory leaks you always need to bind your button to a LifecycleOwner (usually Activity, or Fragment) :

[LifecycleOwner].bindProgressButton(button)

License

Apache 2.0

Author

Anton Hadutski

About

Android Progress Button

Topics

Resources

Stars

850 stars

Watchers

11 watching

Forks

Releases

Packages

Used by

Contributors

Languages