如何通过 styles.xml 更改 MaterialButton 的背景颜色
How to change background color of MaterialButton through styles.xml
我正在尝试更改 material 按钮样式的背景颜色和文本颜色。
但是,我发现 IDE 和 phone 没有变化。
这是问题的屏幕截图。
取消旁边的按钮行为不端,在检查大量属性后我无法更改背景颜色。
这是我的 XML:
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_login_skip"
style="@style/myMaterialButton.Unboxed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cancel"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toLeftOf="@id/btn_login_login" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_login_login"
style="@style/myMaterialButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/pay_deail_submit_btn"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
这是一些风格信息:
<style name="myMaterialButton" parent="Widget.MaterialComponents.Button.OutlinedButton">
<item name="android:textColor">@color/colorPrimary</item>
<item name="strokeWidth">2dp</item>
<item name="android:background">@color/colorPrimaryDark</item>
</style>
颜色如下:
<color name="colorPrimary">@color/silver</color>
<color name="colorPrimaryDark">#2A2E43</color>
如official doc中所述,您可以使用backgroundTint
属性:
<style name="myMaterialButton" parent="Widget.MaterialComponents.Button.OutlinedButton">
<!-- Background color -->
<item name="backgroundTint">@color/...</item>
</style>
不要使用 android:background
属性更改背景颜色。
Material Official Source 你应该在你的风格中使用 app:backgroundTint
同时要检查“Widget.MaterialComponents.Button.OutlinedButton”样式,您应该检查设备或模拟器上的按钮,有时具有此样式的按钮在 IDE
中显示良好
MaterialButton
在视觉上不同于 Button
和 AppCompatButton
。主要区别之一是 AppCompatButton 在左侧和右侧有一个 4dp 的内嵌,而 MaterialButton 没有。
您可以使用app:backgroundTint
改变颜色
有了这个你需要使用
android:insetTop="0dp"
android:insetBottom="0dp"
我正在尝试更改 material 按钮样式的背景颜色和文本颜色。 但是,我发现 IDE 和 phone 没有变化。 这是问题的屏幕截图。
取消旁边的按钮行为不端,在检查大量属性后我无法更改背景颜色。
这是我的 XML:
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_login_skip"
style="@style/myMaterialButton.Unboxed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cancel"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toLeftOf="@id/btn_login_login" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_login_login"
style="@style/myMaterialButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/pay_deail_submit_btn"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
这是一些风格信息:
<style name="myMaterialButton" parent="Widget.MaterialComponents.Button.OutlinedButton">
<item name="android:textColor">@color/colorPrimary</item>
<item name="strokeWidth">2dp</item>
<item name="android:background">@color/colorPrimaryDark</item>
</style>
颜色如下:
<color name="colorPrimary">@color/silver</color>
<color name="colorPrimaryDark">#2A2E43</color>
如official doc中所述,您可以使用backgroundTint
属性:
<style name="myMaterialButton" parent="Widget.MaterialComponents.Button.OutlinedButton">
<!-- Background color -->
<item name="backgroundTint">@color/...</item>
</style>
不要使用 android:background
属性更改背景颜色。
Material Official Source 你应该在你的风格中使用 app:backgroundTint
同时要检查“Widget.MaterialComponents.Button.OutlinedButton”样式,您应该检查设备或模拟器上的按钮,有时具有此样式的按钮在 IDE
中显示良好MaterialButton
在视觉上不同于 Button
和 AppCompatButton
。主要区别之一是 AppCompatButton 在左侧和右侧有一个 4dp 的内嵌,而 MaterialButton 没有。
您可以使用app:backgroundTint
改变颜色
有了这个你需要使用
android:insetTop="0dp"
android:insetBottom="0dp"