読者です 読者をやめる 読者になる 読者になる

うさがにっき

読書感想文とプログラムのこと書いてきます

Design Support LibraryのSnackBarを使ってみる

Android

概要

Design Support Libraryを使ってMaterial DesignのToast的存在のSnackBarを使ってみる

詳細

Material Design以前ではToastを使って簡単なメッセージを表示していたが、今後はSnackBarを使うのがよさげ
SnackBarはToastとよく似ているが、ずっと表示したままにできたり、Actionを設定でき、スワイプで消したりとユーザからの操作が可能という点が異なる

SnackBarの表示方法

Snackbar.make(view, "text", Snackbar.LENGTH_SHORT).show();

f:id:tiro105:20150827221937p:plain

Actionの設定

SnackBarにはActionと呼ばれるタップ可能なテキストをメッセージの右側に出すことができる
また表示時間も無限にすることも可能

表示時間
Snackbar.LENGTH_SHORT 1.5秒
Snackbar.LENGTH_LONG 2.75秒
Snackbar.LENGTH_INDEFINITE 無制限(22.2.1以降)
0より大きい整数 ミリ秒
final Snackbar snackbar = Snackbar.make(view, "text", Snackbar.LENGTH_INDEFINITE);
                snackbar.setAction("action", new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        snackbar.dismiss();
                    }
                });
                snackbar.show();
            }

actionを押すと消える、時間経過では消えない
f:id:tiro105:20150827223751p:plain

色の変更

SnackbarのActionテキストの色と背景色は変更が可能

                final Snackbar snackbar = Snackbar.make(view, "text", Snackbar.LENGTH_INDEFINITE);

                // 色の変更
                snackbar.setActionTextColor(getActivity().getResources().getColor(R.color.theme300));
                snackbar.getView().setBackgroundColor(getActivity().getResources().getColor(R.color.theme500));

                snackbar.setAction("action", new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        snackbar.dismiss();
                    }
                });
                snackbar.show();

f:id:tiro105:20150827224527p:plain