为啥按钮显示错误的颜色?

Posted

技术标签:

【中文标题】为啥按钮显示错误的颜色?【英文标题】:Why button is displaying the wrong color?为什么按钮显示错误的颜色? 【发布时间】:2021-08-18 02:57:38 【问题描述】:

此按钮显示为紫色,其 XML 代码为

        android:id="@+id/btnLogin"
        android:layout_
        android:layout_
        android:layout_marginStart="141dp"
        android:layout_marginEnd="142dp"
        android:layout_marginBottom="48dp"
        android:background="@drawable/btn_login"
        android:fontFamily="@font/poppins"
        android:text="Login"
        android:textAllCaps="false"
        android:textSize="18sp"
        app:layout_constraintBottom_toTopOf="@+id/tvCreateAccount"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

“@drawable/btn_login”是我创建的形状 -

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

    android:shape="rectangle">


    <solid android:color="#71D775">
    </solid>
    <corners android:radius="66dp">
    </corners>



</shape>

这就是它的样子,

【问题讨论】:

您能检查一下布局的背景色调吗? android:backgroundTint="#FFF"| android:foregroundTint="#FFF" 就是这个 随着您获得更多的编程经验,您会了解到,例如,“按钮显示错误的颜色”与其说是“我错误地将颜色应用于按钮”不如说是“按钮显示错误的颜色” ”。自从我想“我在 Java 中发现了一个错误!”以来,已经有很多年了。我现在知道我是我自己问题的最大根源:) 如果我的回答回答了您的问题,请将其标记为已接受的答案。谢谢 【参考方案1】:

这是因为默认的MaterialButton 样式会覆盖backgroundTint

因此,如果我们使用自定义 android:background,我们必须确保将 backgroundTint 置空。我们可以通过以下任何一种方式来实现:

将这些行中的任何一行添加到您的按钮 XML。

app:backgroundTint="@null"      

app:backgroundTint="@empty"

【讨论】:

【参考方案2】:

由于某种原因,您需要将 app:backgroundTint 设置为 null。 像这样:

app:backgroundTint="@null"

【讨论】:

以上是关于为啥按钮显示错误的颜色?的主要内容,如果未能解决你的问题,请参考以下文章

为啥在 CToolBar 中使用高深度颜色的禁用按钮只是灰色框?

为啥显示我的按钮,然后快速隐藏 onResume

为啥我不能在 Mac 上使用 python 更改 tkinter 按钮的背景颜色?

JQuery mobile中按钮背景色无法改变,为啥呀

为啥“提交”按钮会显示在 <form> 之前?

outlook发送邮件为啥老显示错误