Build apps faster with our new App builder! Check it out →

focusRestorer

Common

Modifier in Compose Ui

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.

Last updated:

Installation

dependencies {
   implementation("androidx.compose.ui:ui:1.8.0-rc01")
}

Overloads


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

Parameters

namedescription
fallbackA [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 [FocusRequester.Default] chooses the default focusable item.
@ExperimentalComposeUiApi
@Deprecated(
    "Use focusRestorer(FocusRequester) instead",
    ReplaceWith("this.focusRestorer(onRestoreFailed())"),
    DeprecationLevel.WARNING
)
fun Modifier.focusRestorer(onRestoreFailed: (() -> FocusRequester)?): Modifier

Code Examples

FocusRestorerSample

@Composable
fun FocusRestorerSample() {
    LazyRow(Modifier.focusRestorer()) {
        item { Button(onClick = {}) { Text("1") } }
        item { Button(onClick = {}) { Text("2") } }
        item { Button(onClick = {}) { Text("3") } }
        item { Button(onClick = {}) { Text("4") } }
    }
}

FocusRestorerCustomFallbackSample

@Composable
fun FocusRestorerCustomFallbackSample() {
    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") } }
    }
}
by @alexstyl