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.

  • Field Details

  • 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)
    • 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.