Object

ToggleFloatingActionButtonDefaults

Contains the default values used by ToggleFloatingActionButton

RevenueCat

RevenueCat

Add subscriptions to your apps in minutes

Ad Get started for free
Common
@ExperimentalMaterial3ExpressiveApi
object ToggleFloatingActionButtonDefaults

Contains the default values used by ToggleFloatingActionButton

Functions

containerColor

@Composable
    fun containerColor(
        initialColor: Color = MaterialTheme.colorScheme.primaryContainer,
        finalColor: Color = MaterialTheme.colorScheme.primary,
    ): (Float) -> Color

containerSize

fun containerSize(initialSize: Dp, finalSize: Dp = FabFinalSize): (Float) -> Dp

containerSize

fun containerSize() = containerSize(FabInitialSize)

containerSizeMedium

fun containerSizeMedium() = containerSize(FabMediumInitialSize)

containerSizeLarge

fun containerSizeLarge() = containerSize(FabLargeInitialSize)

containerCornerRadius

fun containerCornerRadius(
        initialSize: Dp,
        finalSize: Dp = FabFinalCornerRadius,
    ): (Float) -> Dp

containerCornerRadius

fun containerCornerRadius() = containerCornerRadius(FabInitialCornerRadius)

containerCornerRadiusMedium

fun containerCornerRadiusMedium() = containerCornerRadius(FabMediumInitialCornerRadius)

containerCornerRadiusLarge

fun containerCornerRadiusLarge() = containerCornerRadius(FabLargeInitialCornerRadius)

iconColor

@Composable
    fun iconColor(
        initialColor: Color = MaterialTheme.colorScheme.onPrimaryContainer,
        finalColor: Color = MaterialTheme.colorScheme.onPrimary,
    ): (Float) -> Color

iconSize

fun iconSize(initialSize: Dp, finalSize: Dp = FabFinalIconSize): (Float) -> Dp

iconSize

fun iconSize() = iconSize(FabInitialIconSize)

iconSizeMedium

fun iconSizeMedium() = iconSize(FabMediumInitialIconSize)

iconSizeLarge

fun iconSizeLarge() = iconSize(FabLargeInitialIconSize)

animateIcon

@Composable
    fun Modifier.animateIcon(
        checkedProgress: () -> Float,
        color: (Float) -> Color = iconColor(),
        size: (Float) -> Dp = iconSize(),
    ) =
        this.layout { measurable, _ ->
                val sizePx = size(checkedProgress()).roundToPx()
                val placeable = measurable.measure(Constraints.fixed(sizePx, sizePx))
                layout(sizePx, sizePx) { placeable.place(0, 0) }
            }
            .drawWithCache {
                val layer = obtainGraphicsLayer()
                layer.apply {
                    record { drawContent() }
                    this.colorFilter = ColorFilter.tint(color(checkedProgress()))
                }

                onDrawWithContent { drawLayer(graphicsLayer = layer) }
            }

Modifier for animating the color and size of an icon within ToggleFloatingActionButton based on a progress value.

Parameters

checkedProgress callback that provides the progress value for the icon animation
color the color of the icon, based on the checked progress value from 0-1
size the size of the icon, based on the checked progress value from 0-1