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 |