TopAppBarState

Class

Common
@ExperimentalMaterial3Api
class TopAppBarState(
    initialHeightOffsetLimit: Float,
    initialHeightOffset: Float,
    initialContentOffset: Float,
)

A state object that can be hoisted to control and observe the top app bar state. The state is read and updated by a TopAppBarScrollBehavior implementation.

In most cases, this state will be created via rememberTopAppBarState.

Parameters

initialHeightOffsetLimitthe initial value for TopAppBarState.heightOffsetLimit
initialHeightOffsetthe initial value for TopAppBarState.heightOffset
initialContentOffsetthe initial value for TopAppBarState.contentOffset

Properties

Common
var heightOffsetLimit = initialHeightOffsetLimit

The top app bar's height offset limit in pixels, which represents the limit that a top app bar is allowed to collapse to.

Use this limit to coerce the heightOffset value when it's updated.

Common
var heightOffset: Float

The top app bar's current height offset in pixels. This height offset is applied to the fixed height of the app bar to control the displayed height when content is being scrolled.

Updates to the heightOffset value are coerced between zero and heightOffsetLimit.

Common
var contentOffset

The total offset of the content scrolled under the top app bar.

The content offset is used to compute the overlappedFraction, which can later be read by an implementation.

This value is updated by a TopAppBarScrollBehavior whenever a nested scroll connection consumes scroll events. A common implementation would update the value to be the sum of all NestedScrollConnection.onPostScroll consumed.y values.

Common
val collapsedFraction: Float

A value that represents the collapsed height percentage of the app bar.

A 0.0 represents a fully expanded bar, and 1.0 represents a fully collapsed bar (computed as heightOffset / heightOffsetLimit).

Common
val overlappedFraction: Float

A value that represents the percentage of the app bar area that is overlapping with the content scrolled behind it.

A 0.0 indicates that the app bar does not overlap any content, while 1.0 indicates that the entire visible app bar area overlaps the scrolled content.

Companion Object

Properties

Common
val Saver: Saver<TopAppBarState, *>

The default Saver implementation for TopAppBarState.