Material Components for Android

Android

Material Button

Material Button is a customizable button component with updated visual styles. This button component has several built-in styles to support different levels of emphasis, as typically any UI will contain a few different buttons to indicate different actions. These levels of emphasis include:

Design & API Documentation

Usage

The MaterialButton component provides a complete implementation of Material Design’s button component. Example code of how to include the component in your layout:

<android.support.design.button.MaterialButton
    android:id="@+id/material_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/button_label_enabled"/>

<android.support.design.button.MaterialButton
    android:id="@+id/disabled_material_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:enabled="false"
    android:text="@string/button_label_disabled"/>

<android.support.design.button.MaterialButton
    android:id="@+id/material_unelevated_button"
    style="@style/Widget.MaterialComponents.Button.UnelevatedButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/unelevated_button_label_enabled"/>

For raised buttons, your theme’s colorAccent provides the default background color of the component, and the text color is white by default. For unelevated buttons, your theme’s colorAccent provides the default text color of the component, and the background color is transparent by default.

Attributes

The following attributes can be changed for Material Button:

The following shows an example of setting icon and iconPadding attributes on a button:

<android.support.design.button.MaterialButton
    android:id="@+id/material_icon_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/icon_button_label_enabled"
    app:icon="@drawable/icon_24px"
    app:iconPadding="8dp"/>

If your app requires actions to be persistent and readily available, you can use FloatingActionButton instead.