Compose Component

ToggleButton

Material Design toggle button Toggle button is a filled toggleable button that switches between primary and tonal colors depending on checked's value.

ToggleButton social preview

ToggleButton

Source set: Common
@Composable
public fun ToggleButton(
    checked: Boolean,
    onCheckedChange: (Boolean) -> Unit,
    modifier: Modifier = Modifier,
    buttonSize: ToggleButtonSize = ToggleButtonDefaults.size,
    enabled: Boolean = true,
    icon: @Composable (() -> Unit)? = null,
    shapes: ToggleButtonShapes = ToggleButtonDefaults.shapesFor(buttonSize),
    colors: ToggleButtonColors = ToggleButtonDefaults.colors(),
    elevation: ToggleButtonElevation? = ToggleButtonDefaults.elevation(),
    border: BorderStroke? = null,
    contentPadding: PaddingValues =
        ToggleButtonDefaults.contentPaddingFor(buttonSize, hasStartIcon = icon != null),
    interactionSource: MutableInteractionSource? = null,
    content: @Composable RowScope.() -> Unit,
)

Parameters

checked whether the toggle button is toggled on or off.
onCheckedChange called when the toggle button is clicked.
modifier the Modifier to be applied to the toggle button.
buttonSize the ToggleButtonSize of this toggle button, controlling its height, padding, and icon sizing.
enabled controls the enabled state of this toggle button. When false, this component will not respond to user input, and it will appear visually disabled and disabled to accessibility services.
icon optional icon to be placed before the content.
shapes the ToggleButtonShapes that the toggle button will morph between depending on the user's interaction with the toggle button.
colors ToggleButtonColors that will be used to resolve the colors used for this toggle button in different states. See ToggleButtonDefaults.colors.
elevation ToggleButtonElevation used to resolve the elevation for this button in different states. This controls the size of the shadow below the button. Additionally, when the container color is ColorScheme.surface, this controls the amount of primary color applied as an overlay. See ToggleButtonDefaults.elevation.
border the border to draw around the container of this toggle button.
contentPadding the spacing values to apply internally between the container and the content.
interactionSource an optional hoisted MutableInteractionSource for observing and emitting Interactions for this toggle button. You can use this to change the toggle button's appearance or preview the toggle button in different states. Note that if null is provided, interactions will still happen internally.
content The content displayed on the toggle button, expected to be text, icon or image.

Content updated: