ともちゃんのAndroid開発日記

組込みC言語プログラマだったともちゃんが、四苦八苦しながら、AndroidのJAVAとKotlinを習得して行きます。ともちゃんの備忘録も兼ねています。

progressDialogがAPI26で非推奨になったため、代替でProgressBarつきSnackbarを実装してみた

Kotlinのソースです。

snackBar = Snackbar.make(dataCenter.getImportView()!!, "", Snackbar.LENGTH_INDEFINITE)
val snackView = snackBar!!.view as Snackbar.SnackbarLayout
progressBar = ProgressBar(context, null, android.R.attr.progressBarStyleHorizontal)
snackView.addView(progressBar)
snackBar!!.show()

 ・・・

progressBar!!.max = length
・・・
progressBar.progress = i+1
・・・
if (snackBar!!.isShown) {
snackBar!!.dismiss()
}

 これで水平タイプのProgressBarをSnackbarに表示できます。

 

Javaでの実装は、こんな感じ。(スピナータイプの例)

snackbar = Snackbar.make(dataCenter.getViewSetting(), res.getString(R.string.process_in_progress), Snackbar.LENGTH_INDEFINITE);
Snackbar.SnackbarLayout snackView = (Snackbar.SnackbarLayout) snackbar.getView();
progressBar = new ProgressBar(context, null, android.R.attr.progressBarStyleSmall);
snackView.addView(progressBar);
snackbar.show();

・・・

if (snackbar.isShown()) {
snackbar.dismiss();
}