我发现自 Android Studio 4.1 以来,我无法通过在其 android:background
上设置颜色来更改 Button
的背景颜色,只是没有效果。自定义 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"/>
结果:
原文由 Sam Chen 发布,翻译遵循 CC BY-SA 4.0 许可协议
对于许多模板,Android Studio 4.1 新项目向导让项目使用 Material Components for Android 库。并且,它将默认主题设置为基于
Theme.MaterialComponents.DayNight.DarkActionBar
。这样做的副作用是布局中的任何
<Button>
元素都会变成MaterialButton
小部件,而不是常规Button
小部件 ---MaterialButton
忽略android:background
。如果您只想更改颜色,请使用
android:backgroundTint
或更改主题中的colorPrimary
属性。如果您想要一个具有自定义背景的按钮, 并且 您的主题设置为使用
Theme.MaterialComponents
,您可以将布局中的 XML 元素切换为<android.widget.Button>
而不是<Button>
。这应该会导致 Android 的 Material Components 忽略该元素,并且您可以根据 XML 属性正常操作此按钮。