Skip to content
Material progress button for Android
Branch: master
Clone or download
Latest commit 4d1b0ed May 11, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea init first version Apr 19, 2019
app Fix textAllCaps == true issue May 7, 2019
gif Add demo graphics Apr 21, 2019
gradle/wrapper init first version Apr 19, 2019
progressbutton Update to version 1.0.3 May 10, 2019
.gitignore init first version Apr 19, 2019
DetailedDoc.md create detailed doc Apr 22, 2019
Readme.md Update Readme.md May 11, 2019
build.gradle init first version Apr 19, 2019
gradle.properties init first version Apr 19, 2019
gradlew init first version Apr 19, 2019
gradlew.bat init first version Apr 19, 2019
settings.gradle init first version Apr 19, 2019

Readme.md

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 {
    jcenter()
  }
}
implementation 'com.github.razir.progressbutton:progressbutton:1.0.3'

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

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

You can’t perform that action at this time.