DialogFragmentでProgress Dialogを作った


デモ

ソースコード

ライブラリ化はしていないので、使う場合はコピペしてください。

使い方

MainActivity.kt
class MainActivity : AppCompatActivity() {

    companion object {
        const val TAG_PROGRESS_DIALOG = "progress"
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        button_show_dialog.setOnClickListener {
            showProgressDialog()
        }
    }

    private fun showProgressDialog() {
        val dialog = ProgressDialogFragment.newInstance()
        dialog.show(supportFragmentManager, TAG_PROGRESS_DIALOG)
        GlobalScope.launch(Dispatchers.Main) {
            dialog.setMessage("Running (10%)")
            dialog.setProgress(10)
            delay(1000)
            dialog.setMessage("Running (50%)")
            dialog.setProgress(50)
            delay(1000)
            dialog.setMessage("Running (100%)")
            dialog.setProgress(100)
            delay(1000)
            dialog.dismiss()
        }
    }
}