onPreInterceptKeyBeforeSoftKeyboard
Compose Modifier
Common
fun Modifier.onPreInterceptKeyBeforeSoftKeyboard(
onPreInterceptKeyBeforeSoftKeyboard: (KeyEvent) -> Boolean
): Modifier
Adding this modifier
to the modifier
parameter of a component will allow
it to intercept hardware key events before they are sent to the software keyboard. This can be
used to intercept key input from a DPad, or physical keyboard connected to the device and is not
applicable to input that is sent to the soft keyboard via spell check or autocomplete. This
modifier is similar to onInterceptKeyBeforeSoftKeyboard
, but allows a parent composable to
intercept the hardware key event before any child.
Parameters
onPreInterceptKeyBeforeSoftKeyboard | This 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 SoftKeyboardInterceptionModifierNode 's child. If none of the children consume the event, it will be sent back up to the root KeyInputModifierNode using the onKeyEvent callback, and ultimately to the software keyboard. |
Code Examples
KeyEventSample
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
@Composable
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()
)
}
}