public object FloatingToolbarDefaults
Contains default values used for the floating toolbar implementations.
Properties
ContainerSize
public val ContainerSize: Dp = FloatingToolbarTokens.ContainerHeight
Default size used for HorizontalFloatingToolbar and VerticalFloatingToolbar container
ContainerExpandedElevation
public val ContainerExpandedElevation: Dp = ElevationTokens.Level0
Default expanded elevation used for HorizontalFloatingToolbar and VerticalFloatingToolbar
ContainerCollapsedElevation
public val ContainerCollapsedElevation: Dp = ElevationTokens.Level0
Default collapsed elevation used for HorizontalFloatingToolbar and VerticalFloatingToolbar
ContainerExpandedElevationWithFab
public val ContainerExpandedElevationWithFab: Dp =
ElevationTokens.Level1
Default expanded elevation used for HorizontalFloatingToolbar and VerticalFloatingToolbar with FAB.
This elevation will only affect the toolbar part of the component. The FAB that is provided in a slot will have its own elevation and can be controlled independently.
ContainerCollapsedElevationWithFab
public val ContainerCollapsedElevationWithFab: Dp =
ElevationTokens.Level0
Default collapsed elevation used for HorizontalFloatingToolbar and VerticalFloatingToolbar with FAB.
This elevation will only affect the toolbar part of the component. The FAB that is provided in a slot will have its own elevation and can be controlled independently.
ContainerShape
public val ContainerShape: Shape
Default shape used for HorizontalFloatingToolbar and VerticalFloatingToolbar
ContentPadding
public val ContentPadding: PaddingValues =
PaddingValues(
start = FloatingToolbarTokens.ContainerLeadingSpace,
top = FloatingToolbarTokens.ContainerLeadingSpace,
end = FloatingToolbarTokens.ContainerTrailingSpace,
bottom = FloatingToolbarTokens.ContainerTrailingSpace,
)
Default padding used for HorizontalFloatingToolbar and VerticalFloatingToolbar when content are default size (24dp) icons in IconButton that meet the minimum touch target (48.dp).
ScreenOffset
public val ScreenOffset: Dp = FloatingToolbarTokens.ContainerExternalPadding
Default offset from the edge of the screen used for HorizontalFloatingToolbar and VerticalFloatingToolbar.
ScrollDistanceThreshold
public val ScrollDistanceThreshold: Dp = 40.dp
A default threshold in Dp for the content's scrolling that defines when the toolbar should be collapsed or expanded.
Functions
animationSpec
@Composable
public fun <T> animationSpec(): FiniteAnimationSpec<T>
Returns a default animation spec used for HorizontalFloatingToolbars and VerticalFloatingToolbars.
exitAlwaysScrollBehavior
@Composable
public fun exitAlwaysScrollBehavior(
exitDirection: FloatingToolbarExitDirection,
state: FloatingToolbarState = rememberFloatingToolbarState(),
snapAnimationSpec: AnimationSpec<Float> = MotionSchemeKeyTokens.DefaultEffects.value(),
flingAnimationSpec: DecayAnimationSpec<Float> = rememberSplineBasedDecay(),
): FloatingToolbarScrollBehavior
Returns a FloatingToolbarScrollBehavior. A floating toolbar that is set up with this FloatingToolbarScrollBehavior will immediately collapse when the content is pulled up, and will immediately appear when the content is pulled down. Note that this scroll behavior may impact assistive technologies making the component inaccessible. See @sample androidx.compose.material3.samples.ScrollableHorizontalFloatingToolbarSample on how to disable scrolling when touch exploration is enabled.
Parameters
| exitDirection | indicates the direction towards which the floating toolbar exits the screen |
| state | the state object to be used to control or observe the floating toolbar's scroll state. See rememberFloatingToolbarState for a state that is remembered across compositions. |
| snapAnimationSpec | an AnimationSpec that defines how the floating toolbar snaps to either fully collapsed or fully extended state when a fling or a drag scrolled it into an intermediate position |
| flingAnimationSpec | a DecayAnimationSpec that defines how to fling the floating tool bar when the user flings the toolbar itself, or the content below it |
horizontalEnterTransition
@Composable
public fun horizontalEnterTransition(expandFrom: Alignment.Horizontal): EnterTransition
Default enter transition used for HorizontalFloatingToolbar when expanding
verticalEnterTransition
@Composable
public fun verticalEnterTransition(expandFrom: Alignment.Vertical): EnterTransition
Default enter transition used for VerticalFloatingToolbar when expanding
horizontalExitTransition
@Composable
public fun horizontalExitTransition(shrinkTowards: Alignment.Horizontal): ExitTransition
Default exit transition used for HorizontalFloatingToolbar when shrinking
verticalExitTransition
@Composable
public fun verticalExitTransition(shrinkTowards: Alignment.Vertical): ExitTransition
Default exit transition used for VerticalFloatingToolbar when shrinking
standardFloatingToolbarColors
@Composable
public fun standardFloatingToolbarColors(): FloatingToolbarColors
Creates a FloatingToolbarColors that represents the default standard colors used in the various floating toolbars.
vibrantFloatingToolbarColors
@Composable
public fun vibrantFloatingToolbarColors(): FloatingToolbarColors
Creates a FloatingToolbarColors that represents the default vibrant colors used in the various floating toolbars.
standardFloatingToolbarColors
@Composable
public fun standardFloatingToolbarColors(
toolbarContainerColor: Color = Color.Unspecified,
toolbarContentColor: Color = Color.Unspecified,
fabContainerColor: Color = Color.Unspecified,
fabContentColor: Color = Color.Unspecified,
): FloatingToolbarColors
Creates a FloatingToolbarColors that represents the default standard colors used in the various floating toolbars.
Parameters
| toolbarContainerColor | the container color for the floating toolbar. |
| toolbarContentColor | the content color for the floating toolbar. |
| fabContainerColor | the container color for an adjacent floating action button. |
| fabContentColor | the content color for an adjacent floating action button. |
vibrantFloatingToolbarColors
@Composable
public fun vibrantFloatingToolbarColors(
toolbarContainerColor: Color = Color.Unspecified,
toolbarContentColor: Color = Color.Unspecified,
fabContainerColor: Color = Color.Unspecified,
fabContentColor: Color = Color.Unspecified,
): FloatingToolbarColors
Creates a FloatingToolbarColors that represents the default vibrant colors used in the various floating toolbars.
Parameters
| toolbarContainerColor | the container color for the floating toolbar. |
| toolbarContentColor | the content color for the floating toolbar. |
| fabContainerColor | the container color for an adjacent floating action button. |
| fabContentColor | the content color for an adjacent floating action button. |
VibrantFloatingActionButton
@Composable
public fun VibrantFloatingActionButton(
onClick: () -> Unit,
modifier: Modifier = Modifier,
shape: Shape = FloatingActionButtonDefaults.shape,
containerColor: Color = vibrantFloatingToolbarColors().fabContainerColor,
contentColor: Color = vibrantFloatingToolbarColors().fabContentColor,
interactionSource: MutableInteractionSource? = null,
content: @Composable () -> Unit,
): Unit
Creates a FloatingActionButton that represents a toolbar floating action button with vibrant colors.
The FAB's elevation and size will be controlled by the floating toolbar, so it's applied with a Modifier.fillMaxSize.
Parameters
| onClick | called when this FAB is clicked |
| modifier | the Modifier to be applied to this FAB |
| shape | defines the shape of this FAB's container and shadow |
| containerColor | the color used for the background of this FAB. Defaults to the FloatingToolbarColors.fabContainerColor from the vibrantFloatingToolbarColors. |
| contentColor | the preferred color for content inside this FAB. Defaults to the FloatingToolbarColors.fabContentColor from the vibrantFloatingToolbarColors. |
| interactionSource | an optional hoisted MutableInteractionSource for observing and emitting Interactions for this FAB. You can use this to change the FAB's appearance or preview the FAB in different states. Note that if null is provided, interactions will still happen internally. |
| content | the content of this FAB, typically an Icon |
StandardFloatingActionButton
@Composable
public fun StandardFloatingActionButton(
onClick: () -> Unit,
modifier: Modifier = Modifier,
shape: Shape = FloatingActionButtonDefaults.shape,
containerColor: Color = standardFloatingToolbarColors().fabContainerColor,
contentColor: Color = standardFloatingToolbarColors().fabContentColor,
interactionSource: MutableInteractionSource? = null,
content: @Composable () -> Unit,
): Unit
Creates a FloatingActionButton that represents a toolbar floating action button with standard colors.
The FAB's elevation and size will be controlled by the floating toolbar, so it's applied with a Modifier.fillMaxSize.
Parameters
| onClick | called when this FAB is clicked |
| modifier | the Modifier to be applied to this FAB |
| shape | defines the shape of this FAB's container and shadow |
| containerColor | the color used for the background of this FAB. Defaults to the FloatingToolbarColors.fabContainerColor from the standardFloatingToolbarColors. |
| contentColor | the preferred color for content inside this FAB. Defaults to the FloatingToolbarColors.fabContentColor from the standardFloatingToolbarColors. |
| interactionSource | an optional hoisted MutableInteractionSource for observing and emitting Interactions for this FAB. You can use this to change the FAB's appearance or preview the FAB in different states. Note that if null is provided, interactions will still happen internally. |
| content | the content of this FAB, typically an Icon |
floatingToolbarVerticalNestedScroll
public fun Modifier.floatingToolbarVerticalNestedScroll(
expanded: Boolean,
onExpand: () -> Unit,
onCollapse: () -> Unit,
expandScrollDistanceThreshold: Dp = ScrollDistanceThreshold,
collapseScrollDistanceThreshold: Dp = ScrollDistanceThreshold,
reverseLayout: Boolean = false,
): Modifier
This Modifier tracks vertical scroll events on the scrolling container that a floating toolbar appears above. It then calls onExpand and onCollapse to adjust the toolbar's state based on the scroll direction and distance.
Essentially, it expands the toolbar when you scroll down past a certain threshold and collapses it when you scroll back up. You can customize the expand and collapse thresholds through the expandScrollDistanceThreshold and collapseScrollDistanceThreshold.
Parameters
| expanded | the current expanded state of the floating toolbar |
| onExpand | callback to be invoked when the toolbar should expand |
| onCollapse | callback to be invoked when the toolbar should collapse |
| expandScrollDistanceThreshold | the scroll distance (in dp) required to trigger an onExpand |
| collapseScrollDistanceThreshold | the scroll distance (in dp) required to trigger an onCollapse |
| reverseLayout | indicates that the scrollable content has a reversed scrolling direction |