# FocusRequester.Companion

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/FocusRequester.kt+class:androidx.compose.ui.focus.FocusRequester.Companion) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0) Common/All
- Cmn

  ```
  object FocusRequester.Companion
  ```

*** ** * ** ***

## Summary

| ### Nested types |
|---|
| `object https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/FocusRequester.Companion.FocusRequesterFactory` Convenient way to create multiple `https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/FocusRequester` instances. |

| ### Public functions |
|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/FocusRequester.Companion.FocusRequesterFactory` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/FocusRequester#createRefs()()` Convenient way to create multiple `https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/FocusRequester`s, which can to be used to request focus, or to specify a focus traversal order. | Cmn |

| ### Public properties |
|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/FocusRequester` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/FocusRequester#Cancel()` Cancelled `https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/focusRequester.modifier#(androidx.compose.ui.Modifier).focusRequester(androidx.compose.ui.focus.FocusRequester)`, which when used in `https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/focusProperties.modifier#(androidx.compose.ui.Modifier).focusProperties(kotlin.Function1)` implies that we want to block focus search from proceeding in the specified `https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/FocusDirection`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/FocusRequester` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/FocusRequester#Default()` Default `https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/focusRequester.modifier#(androidx.compose.ui.Modifier).focusRequester(androidx.compose.ui.focus.FocusRequester)`, which when used in `https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/focusProperties.modifier#(androidx.compose.ui.Modifier).focusProperties(kotlin.Function1)` implies that we want to use the default system focus order, that is based on the position of the items on the screen. | Cmn |

## Public functions

### createRefs

Cmn Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun createRefs(): FocusRequester.Companion.FocusRequesterFactory
```

Convenient way to create multiple `https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/FocusRequester`s, which can to be used to request focus, or to specify a focus traversal order.

```kotlin
import androidx.compose.foundation.focusable
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester

val (item1, item2, item3, item4) = remember { FocusRequester.createRefs() }
Column {
    Box(Modifier.focusRequester(item1).focusable())
    Box(Modifier.focusRequester(item2).focusable())
    Box(Modifier.focusRequester(item3).focusable())
    Box(Modifier.focusRequester(item4).focusable())
}
```

## Public properties

### Cancel

Cmn Added in [1.3.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.3.0)

```
val Cancel: FocusRequester
```

Cancelled `https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/focusRequester.modifier#(androidx.compose.ui.Modifier).focusRequester(androidx.compose.ui.focus.FocusRequester)`, which when used in `https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/focusProperties.modifier#(androidx.compose.ui.Modifier).focusProperties(kotlin.Function1)` implies that we want to block focus search from proceeding in the specified `https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/FocusDirection`.

```kotlin
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester.Companion.Cancel
import androidx.compose.ui.focus.focusProperties
import androidx.compose.ui.focus.focusTarget

// If Box 2 is focused, pressing Up will not take focus to Box 1,
// But pressing Down will move focus to Box 3.
Column {
    // Box 1.
    Box(Modifier.focusTarget())
    // Box 2.
    Box(modifier = Modifier.focusProperties { up = Cancel }.focusTarget())
    // Box 3.
    Box(Modifier.focusTarget())
}
```

### Default

Cmn Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
val Default: FocusRequester
```

Default `https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/focusRequester.modifier#(androidx.compose.ui.Modifier).focusRequester(androidx.compose.ui.focus.FocusRequester)`, which when used in `https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/focusProperties.modifier#(androidx.compose.ui.Modifier).focusProperties(kotlin.Function1)` implies that we want to use the default system focus order, that is based on the position of the items on the screen.