Package io.flutter.embedding.engine.systemchannels

# Class TextInputChannel

java.lang.Object
io.flutter.embedding.engine.systemchannels.TextInputChannel

public class TextInputChannel extends Object
`TextInputChannel` is a platform channel between Android and Flutter that is used to communicate information about the user's text input.

When the user presses an action button like "done" or "next", that action is sent from Android to Flutter through this `TextInputChannel`.

When an input system in the Flutter app wants to show the keyboard, or hide it, or configure editing state, etc. a message is sent from Flutter to Android through this `TextInputChannel`.

`TextInputChannel` comes with a default `MethodChannel.MethodCallHandler` that parses incoming messages from Flutter. Register a `TextInputChannel.TextInputMethodHandler` to respond to standard Flutter text input messages.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `TextInputChannel.Configuration`
  A text editing configuration.
  `static class`
  `TextInputChannel.InputType`
  A text input type.
  `static enum`
  `TextInputChannel.TextCapitalization`
  Text capitalization schemes.
  `static class`
  `TextInputChannel.TextEditState`
  State of an on-going text editing session.
  `static interface`
  `TextInputChannel.TextInputMethodHandler`
  `static enum`
  `TextInputChannel.TextInputType`
  Types of text input.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `final MethodChannel`
  `channel`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TextInputChannel(DartExecutor dartExecutor)`
  Constructs a `TextInputChannel` that connects Android to the Dart code running in `dartExecutor`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `commitContent(int inputClientId, Map<String,Object> content)`
  Instructs Flutter to commit inserted content back to the text channel.
  `void`
  `done(int inputClientId)`
  Instructs Flutter to execute a "done" action.
  `void`
  `go(int inputClientId)`
  Instructs Flutter to execute a "go" action.
  `void`
  `newline(int inputClientId)`
  Instructs Flutter to execute a "newline" action.
  `void`
  `next(int inputClientId)`
  Instructs Flutter to execute a "next" action.
  `void`
  `onConnectionClosed(int inputClientId)`
  Instructs Flutter to execute a "onConnectionClosed" action.
  `void`
  `performPrivateCommand(int inputClientId, String action, Bundle data)`
  `void`
  `previous(int inputClientId)`
  Instructs Flutter to execute a "previous" action.
  `void`
  `requestExistingInputState()`
  Instructs Flutter to reattach the last active text input client, if any.
  `void`
  `search(int inputClientId)`
  Instructs Flutter to execute a "search" action.
  `void`
  `send(int inputClientId)`
  Instructs Flutter to execute a "send" action.
  `void`
  `setTextInputMethodHandler(TextInputChannel.TextInputMethodHandler textInputMethodHandler)`
  Sets the `TextInputChannel.TextInputMethodHandler` which receives all events and requests that are parsed from the underlying platform channel.
  `void`
  `unspecifiedAction(int inputClientId)`
  Instructs Flutter to execute an "unspecified" action.
  `void`
  `updateEditingState(int inputClientId, String text, int selectionStart, int selectionEnd, int composingStart, int composingEnd)`
  Instructs Flutter to update its text input editing state to reflect the given configuration.
  `void`
  `updateEditingStateWithDeltas(int inputClientId, ArrayList<TextEditingDelta> batchDeltas)`
  `void`
  `updateEditingStateWithTag(int inputClientId, HashMap<String,TextInputChannel.TextEditState> editStates)`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### channel

    @NonNull public final MethodChannel channel

- ## Constructor Details

  - ### TextInputChannel

    public TextInputChannel(@NonNull DartExecutor dartExecutor)
    Constructs a `TextInputChannel` that connects Android to the Dart code running in `dartExecutor`.

    The given `dartExecutor` is permitted to be idle or executing code.

    See `DartExecutor`.

- ## Method Details

  - ### requestExistingInputState

    public void requestExistingInputState()
    Instructs Flutter to reattach the last active text input client, if any.

    This is necessary when the view hierarchy has been detached and reattached to a `FlutterEngine`, as the engine may have kept alive a text editing client on the Dart side.

  - ### updateEditingState

    public void updateEditingState(int inputClientId, @NonNull String text, int selectionStart, int selectionEnd, int composingStart, int composingEnd)
    Instructs Flutter to update its text input editing state to reflect the given configuration.

  - ### updateEditingStateWithDeltas

    public void updateEditingStateWithDeltas(int inputClientId, @NonNull ArrayList<TextEditingDelta> batchDeltas)

  - ### updateEditingStateWithTag

    public void updateEditingStateWithTag(int inputClientId, @NonNull HashMap<String,TextInputChannel.TextEditState> editStates)

  - ### newline

    public void newline(int inputClientId)
    Instructs Flutter to execute a "newline" action.

  - ### go

    public void go(int inputClientId)
    Instructs Flutter to execute a "go" action.

  - ### search

    public void search(int inputClientId)
    Instructs Flutter to execute a "search" action.

  - ### send

    public void send(int inputClientId)
    Instructs Flutter to execute a "send" action.

  - ### done

    public void done(int inputClientId)
    Instructs Flutter to execute a "done" action.

  - ### next

    public void next(int inputClientId)
    Instructs Flutter to execute a "next" action.

  - ### previous

    public void previous(int inputClientId)
    Instructs Flutter to execute a "previous" action.

  - ### unspecifiedAction

    public void unspecifiedAction(int inputClientId)
    Instructs Flutter to execute an "unspecified" action.

  - ### commitContent

    public void commitContent(int inputClientId, Map<String,Object> content)
    Instructs Flutter to commit inserted content back to the text channel.

  - ### performPrivateCommand

    public void performPrivateCommand(int inputClientId, @NonNull String action, @NonNull Bundle data)

  - ### onConnectionClosed

    public void onConnectionClosed(int inputClientId)
    Instructs Flutter to execute a "onConnectionClosed" action.

  - ### setTextInputMethodHandler

    public void setTextInputMethodHandler(@Nullable TextInputChannel.TextInputMethodHandler textInputMethodHandler)
    Sets the `TextInputChannel.TextInputMethodHandler` which receives all events and requests that are parsed from the underlying platform channel.