背景色を変更する|Snackbar|Android|Java|開発裏話
単語帳アプリ「単語帳F」にて実装したので、良ければ実動作も併せて確認してほしい。
ポイント
・View#setBackgroundColor はちょっと待って!
・View#setBackgroundTintList が目的では?
View#setBackgroundColor を使って背景色を変更してしまうと、Android のデフォルトデザイン(角丸UI)までも上書きしてしまう。
View#setBackgroundTintList を使って目的通り背景の「色だけ」を変更する。
@Override
public void onClick(View view) {
// make snackbar
Snackbar snackbar = Snackbar.make(
view,
R.string.there_is_no_flashcard,
Snackbar.LENGTH_LONG);
// set color tint
snackbar.getView().setBackgroundTintList(
ColorStateList.valueOf(
ContextCompat.getColor(mContext, R.color.red_a200)));
// show snackbar!
snackbar.show();
}