この記事ではアプリ画面の下部に簡単なメッセージを表示することができる Snackbar の使い方を紹介します。
関連記事
目次
開発環境
Android Studio | 4.1.1 |
---|---|
Android Emulator | Nexus 4 (API 30) |
minSdkVersion | 16 |
targetSdkVersion | 30 |
プロジェクトについて
Sample という名前でプロジェクトを作成しています。
また、以下のファイルに実装していきます。
- MainActivity.java
- activity_main.xml
テーマの確認
themes.xml で指定しているテーマによって Snackbar のデザインが少し異なります。
Theme.AppCompat.DayNight.DarkActionBar や Theme.MaterialComponents.DayNight.DarkActionBar を指定すると、以下のようなデザインになります。
Snackbar を表示する
基本的な使い方
まず Snackbar を表示するボタンを activity_main.xml に用意します。
次に、ボタンが押された時に呼ばれる showSnackbar メソッドを MainActivity.java に書きます。(18~27行目)
19行目
1つ目の引数は、Snackbar を表示するビューを指定します。
2つ目の引数には、表示するメッセージを指定します。
3つ目の引数は、Snackbar を表示する時間です。
使用できる値 | |
---|---|
LENGTH_SHORT | 短く表示 |
LENGTH_LONG | 少し長めに表示 |
LENGTH_INDEFINITE | Snackbar が閉じられるか、次の Snackbar が表示されるまで表示 |
表示時間を自分で指定する場合は setDuration メソッドを使うことができます。
ミリ秒で指定します。1秒 = 1000ミリ秒
アプリを実行すると、このように Snackbar が表示されます。
Snackbar をスワイプで消す方法
CoordinatorLayout を使うと Snackbar をスワイプで消せるようになります。
activity_main.xml の2行目を CoordinatorLayout に変更します。
アプリを実行すると Snackbar をスワイプして消すことができるようになっています。
view オブジェクトついて
ここまでのサンプルではボタンを押した時に Snackbar を表示しているので、onClick メソッドの view オブジェクトを使っています。
例えば
- メール送信完了時
- ログイン完了時
- onCreate メソッド内
で Snackbar を表示したい場合は、親レイアウトの id を使って表示することができます。
onCreate メソッド内で表示するサンプル
activity_main.xml の親レイアウトに id を追加します。(9行目)
MainActivity.java の onCreate メソッドで Snackbar を表示します。(17・18行目)
アプリを実行すると、このように Snackbar が表示されます。
Snackbar のカスタマイズ方法
Snackbar の背景色・文字色を変更する方法は以下の記事をお読みください。
