TextInputService

Added in 1.0.0
Deprecated in 1.7.0

Handles communication with the IME. Informs about the IME changes via EditCommands and provides utilities for working with software keyboard.

This class is responsible for ensuring there is only one open TextInputSession which will interact with software keyboards. Start new a TextInputSession by calling startInput and close it with stopInput.

Summary

Public constructors

TextInputService(platformTextInputService: PlatformTextInputService)
Cmn

Public functions

Unit

This function is deprecated. Use SoftwareKeyboardController.hide or TextInputSession.hideSoftwareKeyboard instead.

Cmn
Unit

This function is deprecated. Use SoftwareKeyboardController.show or TextInputSession.showSoftwareKeyboard instead.

Cmn
open TextInputSession
startInput(
    value: TextFieldValue,
    imeOptions: ImeOptions,
    onEditCommand: (List<EditCommand>) -> Unit,
    onImeActionPerformed: (ImeAction) -> Unit
)

Start text input session for given client.

Cmn
open Unit

Stop text input session.

Cmn

Public constructors

TextInputService

TextInputService(platformTextInputService: PlatformTextInputService)

Public functions

hideSoftwareKeyboard

fun hideSoftwareKeyboard(): Unit

Hide onscreen keyboard.

showSoftwareKeyboard

fun showSoftwareKeyboard(): Unit

Request showing onscreen keyboard.

This call will be ignored if there is not an open TextInputSession, as it means there is nothing that will accept typed input. The most common way to open a TextInputSession is to set the focus to an editable text composable.

There is no guarantee that the keyboard will be shown. The software keyboard or system service may silently ignore this request.

startInput

open fun startInput(
    value: TextFieldValue,
    imeOptions: ImeOptions,
    onEditCommand: (List<EditCommand>) -> Unit,
    onImeActionPerformed: (ImeAction) -> Unit
): TextInputSession

Start text input session for given client.

If there is a previous TextInputSession open, it will immediately be closed by this call to startInput.

Parameters
value: TextFieldValue

initial TextFieldValue

imeOptions: ImeOptions

IME configuration

onEditCommand: (List<EditCommand>) -> Unit

callback to inform about changes requested by IME

onImeActionPerformed: (ImeAction) -> Unit

callback to inform if an IME action such as ImeAction.Done etc occurred.

stopInput

open fun stopInput(session: TextInputSession): Unit

Stop text input session.

If the session is not the currently open session, no action will occur.

Parameters
session: TextInputSession

the session returned by startInput call.