---
title: "rememberPullRefreshState"
description: "Creates a [PullRefreshState] that is remembered across compositions.

Changes to [refreshing] will result in [PullRefreshState] being updated."
type: "composable"
---

<div class='type'>Composable Function</div>


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

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


```kotlin
@Composable
@ExperimentalMaterialApi
fun rememberPullRefreshState(
    refreshing: Boolean,
    onRefresh: () -> Unit,
    refreshThreshold: Dp = PullRefreshDefaults.RefreshThreshold,
    refreshingOffset: Dp = PullRefreshDefaults.RefreshingOffset,
): PullRefreshState
```


Creates a `PullRefreshState` that is remembered across compositions.

Changes to `refreshing` will result in `PullRefreshState` being updated.

#### Parameters

| | |
| --- | --- |
| refreshing | A boolean representing whether a refresh is currently occurring. |
| onRefresh | The function to be called to trigger a refresh. |
| refreshThreshold | The threshold below which, if a release occurs, `onRefresh` will be called. |
| refreshingOffset | The offset at which the indicator will be drawn while refreshing. This offset corresponds to the position of the bottom of the indicator. |





## Code Examples
### PullRefreshSample
```kotlin
@Composable
@OptIn(ExperimentalMaterialApi::class)
fun PullRefreshSample() {
    val refreshScope = rememberCoroutineScope()
    var refreshing by remember { mutableStateOf(false) }
    var itemCount by remember { mutableStateOf(15) }
    fun refresh() =
        refreshScope.launch {
            refreshing = true
            delay(1500)
            itemCount += 5
            refreshing = false
        }
    val state = rememberPullRefreshState(refreshing, ::refresh)
    Box(Modifier.pullRefresh(state)) {
        LazyColumn(Modifier.fillMaxSize()) {
            if (!refreshing) {
                items(itemCount) { ListItem { Text(text = "Item ${itemCount - it}") } }
            }
        }
        PullRefreshIndicator(refreshing, state, Modifier.align(Alignment.TopCenter))
    }
}
```

