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

  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 Details

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