[Android & Kotlin] Snackbar で通知とアクションを実装する

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

Android Studio 3.1.4
API 28
Kotlin 1.2.61

 



Snackbar

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

 

Snackbarの表示

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

 
また、Snackbarのサポートライブラリーが必要ですが、そのためにgradleでcom.android.support:design:のdependence をセットします。
 

尚、バージョンは適宜調整してください。
 
ところで、このViewをどう持ってくるかなのですが、1つの方法としてボタンタップでの表示。この場合はButtonがView!をitとして持っているのでそれを使えます。
 
それ以外に、例えばonCreate()で即表示したい場合は、レイアウトファイルにidをつけてそれをViewとして持ってくることができます。
activity_main.xml

 
MainActivity.kt

以下簡単にSnackbarを表示させるコードですが、
Kotlin Android Extensions を使って簡略化しています。

MainActivity.kt

 
レイアウトです。
activity_main.xml

 
バージョンは他のライブラリーと相互に関連するので調整が必要です。(たまたま、この時はこのバージョンで適合したというだけです)
build.gradle

 
Snackbarが表示されました。
 
snackbar 01 - [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

 
build.gradle

 

サンプル動画

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

 
Reference:
Snackbar | Android Developers

誤字脱字、意味不明で分からにゃイ、
などのご意見はこちらから mailフォーム

ブックマークしておくと便利です このエントリーをはてなブックマークに追加


 


ページのトップへ戻る




シェアする

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

フォローする