# focusRestorer

Common/All

## Functions summary

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/focusRestorer.modifier#(androidx.compose.ui.Modifier).focusRestorer(androidx.compose.ui.focus.FocusRequester)(fallback: https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/FocusRequester)` This modifier can be used to save and restore focus to a focus group. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier` | `@https://developer.android.com/reference/kotlin/androidx/compose/ui/ExperimentalComposeUiApi https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.[focusRestorer](https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/focusRestorer.modifier#(androidx.compose.ui.Modifier).focusRestorer(kotlin.Function0))(onRestoreFailed: (() -> https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/FocusRequester)?)` **This function is deprecated.** Use focusRestorer(FocusRequester) instead | Cmn |

## Functions

### Modifier.focusRestorer

Cmn Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/focus/FocusRestorer.kt+function:focusRestorer) Added in [1.8.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.8.0)

```
fun Modifier.focusRestorer(fallback: FocusRequester = Default): Modifier
```

This modifier can be used to save and restore focus to a focus group. When focus leaves the focus group, it stores a reference to the item that was previously focused. Then when focus re-enters this focus group, it restores focus to the previously focused item.

```kotlin
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.lazy.LazyRow
import androidx.compose.material3.Button
import androidx.compose.material3.Text
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.focusRestorer

LazyRow(Modifier.focusRestorer()) {
    item { Button(onClick = {}) { Text("1") } }
    item { Button(onClick = {}) { Text("2") } }
    item { Button(onClick = {}) { Text("3") } }
    item { Button(onClick = {}) { Text("4") } }
}
```

```kotlin
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.lazy.LazyRow
import androidx.compose.material3.Button
import androidx.compose.material3.Text
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.focus.focusRestorer

val focusRequester = remember { FocusRequester() }
LazyRow(
    // If restoration fails, focus would fallback to the item associated with focusRequester.
    Modifier.focusRestorer(focusRequester)
) {
    item {
        Button(modifier = Modifier.focusRequester(focusRequester), onClick = {}) { Text("1") }
    }
    item { Button(onClick = {}) { Text("2") } }
    item { Button(onClick = {}) { Text("3") } }
    item { Button(onClick = {}) { Text("4") } }
}
```

| Parameters |
|---|---|
| `fallback: https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/FocusRequester = Default` | A `https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/FocusRequester` that is used when focus restoration fails to restore the initially focused item. For example, this might happen if the item is not available to be focused. The default value of `https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/FocusRequester#Default()` chooses the default focusable item. |

### Modifier.focusRestorer

Cmn Artifact: [androidx.compose.ui:ui](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/focus/FocusRestorer.kt+function:focusRestorer) Added in [1.6.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.6.0) Deprecated in [1.8.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.8.0)

```
@ExperimentalComposeUiApi
fun Modifier.[focusRestorer](https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/focusRestorer.modifier#(androidx.compose.ui.Modifier).focusRestorer(kotlin.Function0))(onRestoreFailed: (() -> FocusRequester)?): Modifier
```

> [!CAUTION]
> **This function is deprecated.**   
> Use focusRestorer(FocusRequester) instead, use this instead:
>
> ```kotlin
> this.focusRestorer(onRestoreFailed())
> ```

Deprecated focusRestorer API. Use the version accepting `https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/FocusRequester` instead of the lambda. This method will be removed soon after submitting.