Wear Material Button that offers a single slot to take any content (text, icon or image).

Android
Deprecated This overload is provided for backwards compatibility with Compose for Wear OS 1.0.A newer overload is available with an additional shape parameter.
@Composable
public fun Button(
    onClick: () -> Unit,
    modifier: Modifier = Modifier,
    enabled: Boolean = true,
    colors: ButtonColors = ButtonDefaults.primaryButtonColors(),
    interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
    content: @Composable BoxScope.() -> Unit,
): Unit

Parameters

onClick Will be called when the user clicks the button.
modifier Modifier to be applied to the button.
enabled Controls the enabled state of the button. When false, this button will not be clickable.
colors ButtonColors that will be used to resolve the background and content color for this button in different states. See ButtonDefaults.buttonColors.
interactionSource The MutableInteractionSource representing the stream of Interactions for this Button. You can create and pass in your own remembered MutableInteractionSource if you want to observe Interactions and customize the appearance / behavior of this Button in different Interactions.
content The content displayed on the Button such as text, icon or image.
Android
@Composable
public fun Button(
    onClick: () -> Unit,
    modifier: Modifier = Modifier,
    enabled: Boolean = true,
    colors: ButtonColors = ButtonDefaults.primaryButtonColors(),
    interactionSource: MutableInteractionSource? = null,
    shape: Shape = CircleShape,
    border: ButtonBorder = ButtonDefaults.buttonBorder(),
    content: @Composable BoxScope.() -> Unit,
)

Parameters

onClick Will be called when the user clicks the button.
modifier Modifier to be applied to the button.
enabled Controls the enabled state of the button. When false, this button will not be clickable.
colors ButtonColors that will be used to resolve the background and content color for this button in different states. See ButtonDefaults.buttonColors.
interactionSource an optional hoisted MutableInteractionSource for observing and emitting Interactions for this button. You can use this to change the button's appearance or preview the button in different states. Note that if null is provided, interactions will still happen internally.
shape Defines the button's shape. It is strongly recommended to use the default as this shape is a key characteristic of the Wear Material Theme.
border ButtonBorder that will be used to resolve the button border in different states. See ButtonDefaults.buttonBorder.
content The content displayed on the Button such as text, icon or image.

Code Examples

ButtonWithIcon

@Composable
fun ButtonWithIcon() {
    Button(onClick = { /* Do something */ }, enabled = true) {
        Icon(
            painter = painterResource(id = R.drawable.ic_airplanemode_active_24px),
            contentDescription = "airplane",
            modifier =
                Modifier.size(ButtonDefaults.DefaultIconSize)
                    .wrapContentSize(align = Alignment.Center),
        )
    }
}

ButtonWithText

@Composable
fun ButtonWithText() {
    Button(
        onClick = { /* Do something */ },
        enabled = true,
        modifier = Modifier.size(ButtonDefaults.LargeButtonSize),
    ) {
        Text("Big")
    }
}

LargeButtonWithIcon

@Composable
fun LargeButtonWithIcon() {
    Button(
        onClick = { /* Do something */ },
        enabled = true,
        modifier = Modifier.size(ButtonDefaults.LargeButtonSize),
    ) {
        Icon(
            painter = painterResource(id = R.drawable.ic_airplanemode_active_24px),
            contentDescription = "airplane",
            modifier =
                Modifier.size(ButtonDefaults.LargeIconSize)
                    .wrapContentSize(align = Alignment.Center),
        )
    }
}