TopAppBarState
@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
initialHeightOffsetLimit | the initial value for TopAppBarState.heightOffsetLimit |
initialHeightOffset | the initial value for TopAppBarState.heightOffset |
initialContentOffset | the initial value for TopAppBarState.contentOffset |
Properties
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.
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
.
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.
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
).
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
val Saver: Saver<TopAppBarState, *>
The default Saver
implementation for TopAppBarState
.