---
title: "TopAppBarScrollBehavior"
description: "A TopAppBarScrollBehavior defines how an app bar should behave when the content under it is
scrolled."
type: "interface"
---

<div class='type'>Interface</div>


<a id='references'></a>

<div class='sourceset sourceset-common'>Common</div>



```kotlin
@ExperimentalMaterial3Api
interface TopAppBarScrollBehavior
```


A TopAppBarScrollBehavior defines how an app bar should behave when the content under it is
scrolled.


## Properties

<div class='sourceset sourceset-common'>Common</div>


```kotlin
val state: TopAppBarState
```


A `TopAppBarState` that is attached to this behavior and is read and updated when scrolling
happens.



<div class='sourceset sourceset-common'>Common</div>


```kotlin
val isPinned: Boolean
```


Indicates whether the top app bar is pinned.

A pinned app bar will stay fixed in place when content is scrolled and will not react to any
drag gestures.



<div class='sourceset sourceset-common'>Common</div>


```kotlin
val snapAnimationSpec: AnimationSpec<Float>?
```


An optional `AnimationSpec` that defines how the top app bar snaps to either fully collapsed
or fully extended state when a fling or a drag scrolled it into an intermediate position.



<div class='sourceset sourceset-common'>Common</div>


```kotlin
val flingAnimationSpec: DecayAnimationSpec<Float>?
```


An optional `DecayAnimationSpec` that defined how to fling the top app bar when the user
flings the app bar itself, or the content below it.



<div class='sourceset sourceset-common'>Common</div>


```kotlin
val nestedScrollConnection: NestedScrollConnection
```


A `NestedScrollConnection` that should be attached to a
`androidx.compose.ui.input.nestedscroll.nestedScroll` in order to keep track of the scroll
events.




