New Compose Multiplatform components arrived on Composables UICheck it out →

Modifier in Compose Ui

onPreviewKeyEvent

Common

Adding this [modifier][Modifier] to the [modifier][Modifier] parameter of a component will allow it to intercept hardware key events when it (or one of its children) is focused.

Last updated:

Installation

dependencies {
   implementation("androidx.compose.ui:ui:1.7.0-beta04")
}

Overloads


fun Modifier.onPreviewKeyEvent(
    onPreviewKeyEvent: (KeyEvent) -> Boolean
)

Parameters

namedescription
onPreviewKeyEventThis callback is invoked when the user interacts with the hardware keyboard. It gives ancestors of a focused component the chance to intercept a [KeyEvent]. Return true to stop propagation of this event. If you return false, the key event will be sent to this [onPreviewKeyEvent]'s child. If none of the children consume the event, it will be sent back up to the root [KeyInputModifierNode] using the onKeyEvent callback.

Code Example

KeyEventSample

@Composable
@Sampled
@Suppress("UNUSED_ANONYMOUS_PARAMETER"
fun KeyEventSample() {
    // 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()
        )
    }
}