Package 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 | 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

          @Nullable
          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.

      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.

      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.