Android Progress Button
Last updated Apr 14, 2026
850
Stars
81
Forks
9
Issues
0
Stars/day
Attention Score
55
Language breakdown
Kotlin 70.5%
Java 29.5%
โธ Files
click to expand
README
Progress Button Android

Article on ProAndroidDev.com explaining how it works
https://proandroiddev.com/replace-progressdialog-with-a-progress-button-in-your-app-14ed1d50b44Add 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 animationsGradle dependency
allprojects {
repositories {
mavenCentral()
}
}
implementation 'com.github.razir.progressbutton:progressbutton:2.1.0'
How to use
Basic example
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

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.0Author
Anton Hadutski๐ More in this category