Package io.flutter.embedding.engine.systemchannels

## Interface TextInputChannel.TextInputMethodHandler

- Enclosing class:
    TextInputChannel

      public static interface TextInputChannel.TextInputMethodHandler

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `clearClient()` |
    `void` | `finishAutofillContext​(boolean shouldSave)` | Requests that the `AutofillManager` cancel or commit the current autofill context.
    `void` | `hide()` |
    `void` | `requestAutofill()` | Requests that the autofill dropdown menu appear for the current client.
    `void` | `sendAppPrivateCommand​(String action, Bundle data)` | Sends client app private command to the current text input client(input method).
    `void` | `setClient​(int textInputClientId, TextInputChannel.Configuration configuration)` |
    `void` | `setEditableSizeAndTransform​(double width, double height, double[] transform)` | Sets the size and the transform matrix of the current text input client.
    `void` | `setEditingState​(TextInputChannel.TextEditState editingState)` |
    `void` | `setPlatformViewClient​(int id, boolean usesVirtualDisplay)` | Sets a platform view as the text input client.
    `void` | `show()` |

- - ### Method Detail

    - #### show

          void show()

    - #### hide

          void hide()

    - #### requestAutofill

          void requestAutofill()

      Requests that the autofill dropdown menu appear for the current client.

      Has no effect if the current client does not support autofill.

    - #### finishAutofillContext

          void finishAutofillContext​(boolean shouldSave)

      Requests that the `AutofillManager` cancel or commit the current autofill context.

      The method calls `AutofillManager.commit()` when `shouldSave` is true, and calls `AutofillManager.cancel()` otherwise.

      Parameters:
        `shouldSave` - whether the active autofill service should save the current user input for future use.

    - #### setClient

          void setClient​(int textInputClientId,
                         @NonNull
                         TextInputChannel.Configuration configuration)

    - #### setPlatformViewClient

          void setPlatformViewClient​(int id,
                                     boolean usesVirtualDisplay)

      Sets a platform view as the text input client.

      Subsequent calls to createInputConnection will be delegated to the platform view until a different client is set.

      Parameters:
        `id` - the ID of the platform view to be set as a text input client.
        `usesVirtualDisplay` - True if the platform view uses a virtual display, false if it uses hybrid composition.

    - #### setEditableSizeAndTransform

          void setEditableSizeAndTransform​(double width,
                                           double height,
                                           @NonNull
                                           double[] transform)

      Sets the size and the transform matrix of the current text input client.
      Parameters:
        `width` - the width of text input client. Must be finite.
        `height` - the height of text input client. Must be finite.
        `transform` - a 4x4 matrix that maps the local paint coordinate system to coordinate system of the FlutterView that owns the current client.

    - #### setEditingState

          void setEditingState​(@NonNull
                               TextInputChannel.TextEditState editingState)

    - #### clearClient

          void clearClient()

    - #### sendAppPrivateCommand

          void sendAppPrivateCommand​(@NonNull
                                     String action,
                                     @NonNull
                                     Bundle data)

      Sends client app private command to the current text input client(input method). The app private command result will be informed through `performPrivateCommand`.
      Parameters:
        `action` - Name of the command to be performed. This must be a scoped name. i.e. prefixed with a package name you own, so that different developers will not create conflicting commands.
        `data` - Any data to include with the command.