1. ホーム
  2. android

[解決済み] LollipopのbackgroundTintはButtonに影響を与えない

2023-04-17 03:41:47

質問

ActivityにButtonがあり、そのButtonにテーマのアクセントカラーをつけたいと思っています。 ロリポップ以前のようにdrawableを自作するのではなく、当然、新しい backgroundTint 属性を使いたいと思います。

<Button
    android:id="@+id/btnAddCode"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:backgroundTint="@color/accent"
    android:text="@string/addressInfo_edit_addCode" />

残念ながら何の効果もなく、ボタンは灰色のままです。

私は異なる値を backgroundTintMode の値を変えてみましたが、何も変わりませんでした。

また、私のActivityでプログラム的にやってみましたが、何も変わりませんでした。

addCodeView.findViewById(R.id.btnAddCode).setBackgroundTintList(
     getResources().getColorStateList(R.color.accent));

なぜ私のティントは無視されるのですか?

編集しました。 明確にするために、私は確かに Lollipop デバイス上でテストしています。 他のウィジェット(例:EditText)は正しく自動的に色付けされています。

どのように解決するのですか?

API 19からAPI 27でテスト済み

<?xml version="1.0" encoding="utf-8"?>
  <android.support.v7.widget.AppCompatButton 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    style="@style/Widget.AppCompat.Button.Colored"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/retry"
    android:textColor="@android:color/white"
    app:backgroundTint="@android:color/holo_red_dark" />

は - のような出力を生成します。