#Snackbar
GmailやGoogleKeepアプリでアイテムをアーカイブしたとき、画面下部に出る通知を実装したかったのですが、名前が分からずずっと調べていました。
「Snackbar」というみたいですね。使用するときは下記の通り。
snackbar.kt
Snackbar.make(View, "削除しました", Snackbar.LENGTH_SHORT).show()
このような表示になります。(Floating Action Buttonに重なっていますが)
※6月3日追記:親レイアウトをCoordinatorLayoutにすることで重なりを回避できます。
#アクションの追加
行った操作を元に戻すなど、Snackbarにアクションを加えたい場合はsetAction
メソッドを使い、OnClickListener
を実装します。
snackbar.kt
Snackbar.make(view, "削除しました", Snackbar.LENGTH_LONG).setAction("元に戻す", View.OnClickListener {
// アクションの処理
}).show
#Callback(6月3日追記)
Snackbarの通知が表示されたとき、もしくは消えたときに何らかの処理を行いたい場合は、Snackbar.addCallback
を使い
onShown
/ onDismissed
をオーバーライドします。
callback.kt
val snackbar = Snackbar.make(view, "削除しました", Snackbar.LENGTH_LONG)
snackbar.addCallback(object : BaseTransientBottomBar.BaseCallback<Snackbar>() {
override fun onShown(transientBottomBar: Snackbar?) {
super.onShown(transientBottomBar)
}
override fun onDismissed(transientBottomBar: Snackbar?, event: Int) {
super.onDismissed(transientBottomBar, event)
}
})
#参考
https://developer.android.com/reference/android/support/design/widget/Snackbar