Button
Android 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 属性に関してこのボタンを通常どおり操作できるようになります。