后台绘图不适用于Android按钮



我想将drawable应用于我的android按钮。但是,背景绘制不起作用。

这是我的绘图代码。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#FFEF1D1D" />
</shape>
</item>
</layer-list>

这是我的布局代码

<Button
android:id="@+id/booking"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="6.5"
android:text="bokking"
android:textStyle="bold"
android:textColor="@color/white"
android:background="@drawable/booking_btn"
android:layout_marginRight="10dp"/>

Drawable未应用于Button,但Drawable应用于AppCompatButton。我也想知道为什么。

当我应用此代码时,只有backgroundTint适用于按钮。

我花了一个星期的时间讨论这个问题,但我解决不了。请帮我

不能在材质按钮上应用背景。

如果您使用的是Theme.MaterialComponents.*,那么普通按钮也会被强制用作材质按钮。

你有两个选择。

  1. 将其更改为任何AppCompat主题
  2. 仍然如果你需要一些组件的材质主题,那么使用任何带有桥接的材质主题。如Theme.MaterialComponents.*.Bridge

因此,如果您选择选项2,您可以根据需要使用材质按钮。

材料按钮使用com.google.android.material.button.MaterialButton,否则使用普通按钮。

从Android Studio 4.1开始,Theme似乎有问题,请尝试将基本ThemeTheme.MaterialComponents.DayNight.DarkActionBar更改为Theme.AppCompat.DayNight.DarkActionBar,这对我来说很有效。

只有一次机会。我认为你在使用材料主题。这就是background属性不应用于按钮的原因。如果您想使用它,请将主题更改为appcompat varaint。

您没有在XML中使用selector。使用Selector而不是Layer-List

最新更新