android - 为custome xml按钮着色时出现问题
问题描述
我在为自定义按钮着色时遇到问题。出于某种原因,似乎无论我要应用什么颜色更改(文本或背景),按钮都保持不变。
我注意到它button.xml
具有所需的颜色和正确的形状,尽管它没有出现在background-color
活动中的按钮属性
活动中的按钮
<Button
android:id="@+id/button2"
android:layout_width="162dp"
android:layout_height="53dp"
android:background="@drawable/button"
android:text="@string/button"
android:textAllCaps="false"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.132"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/messagTextView"
app:layout_constraintVertical_bias="0.804" />
自定义按钮形状
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="50sp"/>
<solid android:color="@color/redAdobeXD"/>
</shape>
解决方案
如果您使用的是材料组件(如果这是一个相对较新的项目,可能就是这种情况),那么您可以通过Button
另一种方式设置样式:
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
tools:context=".FirstFragment">
<Button
android:id="@+id/button"
style="@style/Widget.MaterialComponents.Button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="32dp"
android:text="I am a Button!"
android:textColor="@color/white"
app:backgroundTint="#FF0000"
app:cornerRadius="50dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
需要注意的是:
style="@style/Widget.MaterialComponents.Button"
android:textColor="@color/white"
app:backgroundTint="#FF0000"
(@color/redAdobeXD
在你的情况下)app:cornerRadius="50dp"
不需要额外的 xml 并在按钮等上进行设置(仅在更多自定义情况下)。
您可以在此处阅读有关ContainedButton上可用选项的更多信息
推荐阅读
- sas - ODS 标签集 RTF
- c++ - 鼠标不动时 SDL2“跳过”帧
- node.js - 我想使用 SSM 和节点 API 在 EC2 实例上的本地硬盘驱动器上执行 shell 脚本
- selenium-chromedriver - 包 chromedriver 不可用,但被另一个包引用
- jquery - 循环遍历 HTML 表并使用 AJAX GET 更新值
- database - 使用 signInWithEmailAndPassword 检索用户名
- string - 如何在 Cognos Report Studio 10.2 中删除特定字符之前的所有字符
- unix - 奇怪的make install:如何卸载?
- c - 如果跳过编译器检查 (-DCMAKE_C_COMPILER_WORKS=1),check_include_files() 是否有效?
- bash - 临时更改 git 的语言