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 class` | `TextInputChannel.TextCapitalization` | Text capitalization schemes.
    `static class` | `TextInputChannel.TextEditState` | State of an on-going text editing session.
    `static interface` | `TextInputChannel.TextInputMethodHandler` |
    `static class` | `TextInputChannel.TextInputType` | Types of text input.

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `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

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `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` | `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 Detail

    - #### channel

          @NonNull
          public final MethodChannel channel

  - ### Constructor Detail

    - #### 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 Detail

    - #### 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.

    - #### performPrivateCommand

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

    - #### 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.