为啥按钮显示错误的颜色?
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 中使用高深度颜色的禁用按钮只是灰色框?