razir
ProgressButton
Kotlin

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 Download

basic progress button example progress cebter button example mixed 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

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

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

ยฉ 2026 GitRepoTrend ยท razir/ProgressButton ยท Updated daily from GitHub