CompactButton
Component in Wear Material Compose
Wear Material [CompactButton] that offers a single slot to take any content (text, icon or image).
The [CompactButton] is circular in shape and has background size [ButtonDefaults.ExtraSmallButtonSize]. There is an optional transparent padding around the background, defaulted to [ButtonDefaults.CompactButtonBackgroundPadding], which increases the clickable area. Icon content should have size [ButtonDefaults.SmallIconSize].
The recommended set of [ButtonColors] styles can be obtained from [ButtonDefaults], e.g. [ButtonDefaults.primaryButtonColors] to get a color scheme for a primary [Button] which by default will have a solid background of [Colors.primary] and content color of [Colors.onPrimary].
[CompactButton]s can be enabled or disabled. A disabled button will not respond to click events.
Last updated:
Installation
dependencies {
implementation("androidx.wear.compose:compose-material:1.5.0-alpha04")
}
Overloads
@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.",
level = DeprecationLevel.HIDDEN
)
@Composable
fun CompactButton(
onClick: () -> Unit,
modifier: Modifier = Modifier,
enabled: Boolean = true,
colors: ButtonColors = ButtonDefaults.primaryButtonColors(),
backgroundPadding: Dp = ButtonDefaults.CompactButtonBackgroundPadding,
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
content: @Composable BoxScope.() -> Unit,
)
Parameters
name | description |
---|---|
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]. |
backgroundPadding | Increases the transparent clickable area around the background, defaults to [ButtonDefaults.CompactButtonBackgroundPadding] |
interactionSource | The [MutableInteractionSource] representing the stream of [Interaction]s for this Button. You can create and pass in your own remembered [MutableInteractionSource] if you want to observe [Interaction]s and customize the appearance / behavior of this Button in different [Interaction]s. |
content | The content displayed on the [CompactButton] such as text, icon or image. |
@Composable
fun CompactButton(
onClick: () -> Unit,
modifier: Modifier = Modifier,
enabled: Boolean = true,
colors: ButtonColors = ButtonDefaults.primaryButtonColors(),
backgroundPadding: Dp = ButtonDefaults.CompactButtonBackgroundPadding,
interactionSource: MutableInteractionSource? = null,
shape: Shape = CircleShape,
border: ButtonBorder = ButtonDefaults.buttonBorder(),
content: @Composable BoxScope.() -> Unit,
)
Parameters
name | description |
---|---|
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]. |
backgroundPadding | Increases the transparent clickable area around the background, defaults to [ButtonDefaults.CompactButtonBackgroundPadding] |
interactionSource | an optional hoisted [MutableInteractionSource] for observing and emitting [Interaction]s 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.outlinedButtonBorder]. |
content | The content displayed on the [CompactButton] such as text, icon or image. |
Code Example
CompactButtonWithIcon
@Composable
fun CompactButtonWithIcon() {
CompactButton(
onClick = { /* Do something */ },
enabled = true,
) {
Icon(
painter = painterResource(id = R.drawable.ic_airplanemode_active_24px),
contentDescription = "airplane",
modifier =
Modifier.size(ButtonDefaults.SmallIconSize)
.wrapContentSize(align = Alignment.Center),
)
}
}