# onKeyEvent

Common/AllAndroid/JVM

## 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/input/key/onKeyEvent.modifier#(androidx.compose.ui.Modifier).onKeyEvent(kotlin.Function1)(onKeyEvent: (https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/KeyEvent) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Adding this `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier` to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier` parameter of a component will allow it to intercept hardware key events when it (or one of its children) is focused. | Cmn |

## Functions

### Modifier.onKeyEvent

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/input/key/KeyInputModifier.kt+function:onKeyEvent) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0)

```
fun Modifier.onKeyEvent(onKeyEvent: (KeyEvent) -> Boolean): Modifier
```

Adding this `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier` to the `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier` parameter of a component will allow it to intercept hardware key events when it (or one of its children) is focused.

```kotlin
import androidx.compose.foundation.focusable
import androidx.compose.foundation.layout.Box
import androidx.compose.ui.Modifier
import androidx.compose.ui.input.key.Key
import androidx.compose.ui.input.key.key
import androidx.compose.ui.input.key.onKeyEvent
import androidx.compose.ui.input.key.onPreviewKeyEvent

// When the inner Box is focused, and the user presses a key, the key goes down the hierarchy
// and then back up to the parent. At any stage you can stop the propagation by returning
// true to indicate that you consumed the event.
Box(Modifier.onPreviewKeyEvent { keyEvent1 -> false }.onKeyEvent { keyEvent4 -> false }) {
    Box(
        Modifier.onPreviewKeyEvent { keyEvent2 -> false }
            .onKeyEvent { keyEvent3 -> false }
            .focusable()
    )
}
```

| Parameters |
|---|---|
| `onKeyEvent: (https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/KeyEvent) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | This callback is invoked when the user interacts with the hardware keyboard. While implementing this callback, return true to stop propagation of this event. If you return false, the key event will be sent to this `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/onKeyEvent.modifier#(androidx.compose.ui.Modifier).onKeyEvent(kotlin.Function1)`'s parent. |