我想将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.*
,那么普通按钮也会被强制用作材质按钮。
你有两个选择。
- 将其更改为任何AppCompat主题
- 仍然如果你需要一些组件的材质主题,那么使用任何带有桥接的材质主题。如
Theme.MaterialComponents.*.Bridge
因此,如果您选择选项2,您可以根据需要使用材质按钮。
材料按钮使用com.google.android.material.button.MaterialButton
,否则使用普通按钮。
从Android Studio 4.1开始,Theme
似乎有问题,请尝试将基本Theme
从Theme.MaterialComponents.DayNight.DarkActionBar
更改为Theme.AppCompat.DayNight.DarkActionBar
,这对我来说很有效。
只有一次机会。我认为你在使用材料主题。这就是background属性不应用于按钮的原因。如果您想使用它,请将主题更改为appcompat varaint。
您没有在XML中使用selector
。使用Selector
而不是Layer-List