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

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


Android Studio
2021.1.1

 




Snackbar

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

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

 

Snackbarの表示

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

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


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


下は最新のgradleではデフォルトで設定されています。


バージョンは適宜調整してください。
 
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


 

 

サンプル動画

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

 
Reference:
Snackbar | Android Developers

シェアする

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

フォローする