[Android & Kotlin] Snackbar で通知とアクションを実装しカスタマイズする

SnackbarはToastと同じように簡単なメッセージをユーザーに通知できます。更にメッセージと共にボタンタップでのアクションを提示することも可能です。
 
1x1.trans - [Android & Kotlin] Snackbar で通知とアクションを実装しカスタマイズする


Android Studio
2024.1.1

 




Snackbar

 

SnackbarはToastと同じようにある短い期間だけ表示して消えます。
自動的に消えるのがいい場合と残っていて欲しい場合もあり、Snackbarでは表示期間をdismissするまで継続させたりとカスタマイズは色々とできます。

Toastは最近機能が制限されてきて、Snackbarを使うように仕向けられているようにも思います。
 

 

Snackbarの表示

 

SnackbarはToastと似たような設定ですが、引数として「View」を取ります。
因みにToastはContextでした。

なのでViewにattachして表示させる必要があります。
 

 
また、Snackbarのサポートライブラリーが必要です。
 

 
Viewをどう持ってくるかなのですが、XMLレイアウトファイルにIDを振る、あるいはandroid.R.id.content が親レイアウトViewを指しているのでこれを使うのが簡単です。

 
ViewBinding では元々root viewを使用しているのでそれを使うこともできます。

 

サンプルコード

 

以下簡単にSnackbarを表示させるコードです。

MainActivity.kt

 
レイアウトはそのままです。
  
これでSnackbarが表示されました。
 
1x1.trans - [Android & Kotlin] Snackbar で通知とアクションを実装しカスタマイズする

 

Snackbarのカスタマイズ

 

Snackbarにアクションを設定をしたり、文字色を変えるなどカスタマイズしてみましょう。
setAction()を使うと、バーの右横にmessageが設定されてそれをタップするとアクションが実行されます。Buttonのような感じに使えます。
 

 
カスタマイズとして以下のことをやってみました。

  • LENGTH_INDEFINITE:
    • 表示をdismiss()が呼ばれるまで表示、つまり自動で消えない設定です
  • setAction:
    • ボタンのようにタップでTextViewを変更
  • view.setBackgroundColor():
    • Snackbarの背景色
  • Snackbar:
    • テキスト色、サイズ変更
  • Action:
    • ボタンの背景色と色を変更

 

MainActivity.kt

 
activity_main.xml

 
strings.xml

 

これで実行してみます

1x1.trans - [Android & Kotlin] Snackbar で通知とアクションを実装しカスタマイズする

 

サンプル動画

 

setActionのテキストやタップはTextViewやButtonとして設定していけるので、後は色々と変更が可能となります。
 

 

Reference:
Snackbar | Android Developers

シェアする

  • このエントリーをはてなブックマークに追加

フォローする