# KeyInputModifierNode

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/KeyInputModifierNode.kt+class:androidx.compose.ui.input.key.KeyInputModifierNode) Added in [1.4.0](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.4.0) Common/AllAndroid/JVM
- Cmn

  ```
  interface KeyInputModifierNode : DelegatableNode
  ```

*** ** * ** ***

Implement this interface to create a `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.Node` that can intercept hardware Key events.

The event is routed to the focused item. Before reaching the focused item, [onPreKeyEvent]() is called for parents of the focused item. If the parents don't consume the event, [onPreKeyEvent]() is called for the focused item. If the event is still not consumed, [onKeyEvent]() is called on the focused item's parents.

## Summary

| ### Public functions |
|---|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/KeyInputModifierNode#onKeyEvent(androidx.compose.ui.input.key.KeyEvent)(event: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/KeyEvent)` This function is called when a `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/KeyEvent` is received by this node during the upward pass. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/KeyInputModifierNode#onPreKeyEvent(androidx.compose.ui.input.key.KeyEvent)(event: https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/KeyEvent)` This function is called when a `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/KeyEvent` is received by this node during the downward pass. | Cmn |

### Inherited functions

From [androidx.compose.ui.node.DelegatableNode](https://developer.android.com/reference/kotlin/androidx/compose/ui/node/DelegatableNode) `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/EmptySuper
https://developer.android.com/reference/kotlin/androidx/compose/ui/node/DelegatableNode#onDensityChange()()`

Invoked when the density changes for this node.
Cmn `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/EmptySuper
https://developer.android.com/reference/kotlin/androidx/compose/ui/node/DelegatableNode#onLayoutDirectionChange()()`

Invoked when the layout direction changes for this node.
Cmn

### Inherited properties

From [androidx.compose.ui.node.DelegatableNode](https://developer.android.com/reference/kotlin/androidx/compose/ui/node/DelegatableNode) `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.Node` `https://developer.android.com/reference/kotlin/androidx/compose/ui/node/DelegatableNode#node()`

A reference of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.Node` that holds this node's position in the node hierarchy.
Cmn

## Public functions

### onKeyEvent

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

```
fun onKeyEvent(event: KeyEvent): Boolean
```

This function is called when a `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/KeyEvent` is received by this node during the upward pass. 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/KeyInputModifierNode`'s parent.

### onPreKeyEvent

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

```
fun onPreKeyEvent(event: KeyEvent): Boolean
```

This function is called when a `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/KeyEvent` is received by this node during the downward pass. It gives ancestors of a focused component the chance to intercept an event. Return true to stop propagation of this event. If you return false, the event will be sent to this `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/KeyInputModifierNode`'s child. If none of the children consume the event, it will be sent back up to the root using the `https://developer.android.com/reference/kotlin/androidx/compose/ui/input/key/KeyInputModifierNode#onKeyEvent(androidx.compose.ui.input.key.KeyEvent)` function.