Android Studio 4.1 以降、Android 背景描画可能ボタンが機能しない 質問する

Android Studio 4.1 以降、Android 背景描画可能ボタンが機能しない 質問する

ButtonAndroid Studio 4.1 以降では、 に色を設定してもの背景色を変更できずandroid:background、効果がないことがわかりました。Drawableまた、カスタムも機能しません。

私の背景Drawable

<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <stroke
        android:width="1.5dp"
        android:color="@android:color/black" />

    <solid
        android:color="@android:color/white" />

    <corners
        android:radius="8dp" />

</shape>

私のButton

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Add To Cart"
    android:background="@drawable/background3"/>

結果:

ここに画像の説明を入力してください

ベストアンサー1

Android Studio 4.1 の新規プロジェクト ウィザードでは、多くのテンプレートでプロジェクトに Android 用マテリアル コンポーネント ライブラリを使用させます。また、 に基づいてデフォルトのテーマを設定しますTheme.MaterialComponents.DayNight.DarkActionBar

この副作用として、<Button>レイアウト内の要素がMaterialButton通常のButtonウィジェットではなくウィジェットに変換されます。MaterialButtonは無視されますandroid:background

色を変更するだけの場合は、テーマの属性を使用android:backgroundTintするか変更します。colorPrimary

カスタム背景のボタンが必要な場合は、そしてテーマが を使用するように設定されている場合はTheme.MaterialComponents、レイアウト内の XML 要素を ではなく に切り替えることができます。これ<android.widget.Button>により<Button>、Android のマテリアル コンポーネントはその要素を無視するようになり、XML 属性に関してこのボタンを通常どおり操作できるようになります。

おすすめ記事