小编典典

Android Material Design 按钮样式

all

我对材料设计的按钮样式感到困惑。我想要在附加链接中获得彩色凸起按钮,例如使用部分下的“强制停止”和“卸载”按钮。有可用的样式还是我需要定义它们?

我找不到默认的按钮样式。

例子:

 <Button style="@style/PrimaryButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Calculate"
    android:id="@+id/button3"
    android:layout_below="@+id/editText5"
    android:layout_alignEnd="@+id/editText5"
    android:enabled="true" />

如果我尝试通过添加来更改按钮的背景颜色

    android:background="@color/primary"

所有样式都消失了,例如触摸动画、阴影、圆角等。


阅读 112

收藏
2022-04-04

共1个答案

小编典典

您可以使用 材料组件库

将依赖项添加到您的build.gradle

dependencies { implementation 鈥榗om.google.android.material:material:1.3.0鈥� }

然后将其添加 MaterialButton 到您的布局中:

<com.google.android.material.button.MaterialButton
        style="@style/Widget.MaterialComponents.Button.OutlinedButton" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        app:strokeColor="@color/colorAccent"
        app:strokeWidth="6dp"
        app:layout_constraintStart_toStartOf="parent"
        app:shapeAppearance="@style/MyShapeAppearance"
   />

你可以在这里查看完整的文档API

要更改 背景颜色 ,您有 2 个选项。

  1. 使用 backgroundTint 属性。

就像是:

<style name="MyButtonStyle"
 parent="Widget.MaterialComponents.Button">
    <item name="backgroundTint">@color/button_selector</item>
    //..
</style>
  1. 在我看来,这将是最好的选择。如果您想从默认样式中覆盖某些主题属性,则可以使用新 materialThemeOverlay 属性。

就像是:

<style name="MyButtonStyle"
 parent="Widget.MaterialComponents.Button">
   <item name=“materialThemeOverlay”>@style/GreenButtonThemeOverlay</item>
</style>

<style name="GreenButtonThemeOverlay">
  <!-- For filled buttons, your theme's colorPrimary provides the default background color of the component --> 
  <item name="colorPrimary">@color/green</item>
</style>

选项#2 至少需要 version 1.1.0

在此处输入图像描述在此处输入图像描述

您可以使用以下样式之一:

  • 填充按钮(默认)style="@style/Widget.MaterialComponents.Button
  • 文字按钮style="@style/Widget.MaterialComponents.Button.TextButton"
  • 大纲按钮style="@style/Widget.MaterialComponents.Button.OutlinedButton"

旧支持库:

使用新的支持库 28.0.0,设计库现在包含MaterialButton.

您可以将此按钮添加到我们的布局文件中:

<android.support.design.button.MaterialButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="YOUR TEXT"
    android:textSize="18sp"
    app:icon="@drawable/ic_android_white_24dp" />

默认情况下,此类将使用主题的 强调色 作为按钮填充的背景颜色以及白色作为按钮文本颜色。

您可以使用以下属性自定义按钮:

  • app:rippleColor:’用于按钮波纹效果的颜色

  • app:backgroundTint:’sed 为按钮的背景应用色调。如果您希望更改按钮的背景颜色,请使用此属性而不是背景。

  • app:strokeColor: 用于按钮描边的颜色

  • app:strokeWidth:’用于按钮笔划的宽度

  • app:cornerRadius:’sed 定义用于按钮角的半径

2022-04-04