io.flutter.plugin.platform

## Interface PlatformView

-     public interface PlatformView

  A handle to an Android view to be embedded in the Flutter hierarchy.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `dispose()` Dispose this platform view.
    `View` | `getView()` Returns the Android view to be embedded in the Flutter hierarchy.
    `default void` | `onFlutterViewAttached(View flutterView)` Called by the `FlutterEngine` that owns this `PlatformView` when the Android `View` responsible for rendering a Flutter UI is associated with the `FlutterEngine`.
    `default void` | `onFlutterViewDetached()` Called by the `FlutterEngine` that owns this `PlatformView` when the Android `View` responsible for rendering a Flutter UI is detached and disassociated from the `FlutterEngine`.
    `default void` | `onInputConnectionLocked()` Callback fired when the platform's input connection is locked, or should be used.
    `default void` | `onInputConnectionUnlocked()` Callback fired when the platform input connection has been unlocked.

- - ### Method Detail

    - #### getView

          View getView()

      Returns the Android view to be embedded in the Flutter hierarchy.

    - #### onFlutterViewAttached

          default void onFlutterViewAttached(@NonNull
                                             View flutterView)

      Called by the `FlutterEngine` that owns this `PlatformView` when the Android `View` responsible for rendering a Flutter UI is associated with the `FlutterEngine`.

      This means that our associated `FlutterEngine` can now render a UI and interact with the user.

      Some platform views may have unusual dependencies on the `View` that renders Flutter UIs, such as unique keyboard interactions. That `View` is provided here for those purposes. Use of this `View` should be avoided if it is not absolutely necessary, because depending on this `View` will tend to make platform view code more brittle to future changes.

    - #### onFlutterViewDetached

          default void onFlutterViewDetached()

      Called by the `FlutterEngine` that owns this `PlatformView` when the Android `View` responsible for rendering a Flutter UI is detached and disassociated from the `FlutterEngine`.

      This means that our associated `FlutterEngine` no longer has a rendering surface, or a user interaction surface of any kind.

      This platform view must release any references related to the Android `View` that was provided in `onFlutterViewAttached(View)`.

    - #### dispose

          void dispose()

      Dispose this platform view.

      The `PlatformView` object is unusable after this method is called.

      Plugins implementing `PlatformView` must clear all references to the View object and the PlatformView after this method is called. Failing to do so will result in a memory leak.

      References related to the Android `View` attached in `onFlutterViewAttached(View)` must be released in `dispose()` to avoid memory leaks.

    - #### onInputConnectionLocked

          default void onInputConnectionLocked()

      Callback fired when the platform's input connection is locked, or should be used. See also `TextInputPlugin#lockPlatformViewInputConnection`.

      This hook only exists for rare cases where the plugin relies on the state of the input connection. This probably doesn't need to be implemented.

    - #### onInputConnectionUnlocked

          default void onInputConnectionUnlocked()

      Callback fired when the platform input connection has been unlocked. See also `TextInputPlugin#lockPlatformViewInputConnection`.

      This hook only exists for rare cases where the plugin relies on the state of the input connection. This probably doesn't need to be implemented.