Package io.flutter.embedding.android

## Class FlutterView

- java.lang.Object
- - android.view.View
  - - android.view.ViewGroup
    - - android.widget.FrameLayout
      - - io.flutter.embedding.android.FlutterView

- All Implemented Interfaces:
    `Drawable.Callback`, `AccessibilityEventSource`, `KeyEvent.Callback`, `ViewManager`, `ViewParent`, `KeyboardManager.ViewDelegate`, `io.flutter.plugin.mouse.MouseCursorPlugin.MouseCursorViewDelegate`

      public class FlutterView
      extends FrameLayout
      implements io.flutter.plugin.mouse.MouseCursorPlugin.MouseCursorViewDelegate, KeyboardManager.ViewDelegate

  Displays a Flutter UI on an Android device.

  A `FlutterView`'s UI is painted by a corresponding `FlutterEngine`.

  A `FlutterView` can operate in 2 different `RenderMode`s:

  1. `RenderMode.surface`, which paints a Flutter UI to a `SurfaceView`. This mode has the best performance, but a `FlutterView` in this mode cannot be positioned between 2 other Android `View`s in the z-index, nor can it be animated/transformed. Unless the special capabilities of a `SurfaceTexture` are required, developers should strongly prefer this render mode.
  2. `RenderMode.texture`, which paints a Flutter UI to a `SurfaceTexture`. This mode is not as performant as `RenderMode.surface`, but a `FlutterView` in this mode can be animated and transformed, as well as positioned in the z-index between 2+ other Android `Views`. Unless the special capabilities of a `SurfaceTexture` are required, developers should strongly prefer the `RenderMode.surface` render mode.
  See https://source.android.com/devices/graphics/arch-tv#surface_or_texture for more information comparing `SurfaceView` and `TextureView`.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static interface` | `FlutterView.FlutterEngineAttachmentListener` | Listener that is notified when a `FlutterEngine` is attached to/detached from a given `FlutterView`.

    - ### Nested classes/interfaces inherited from class android.widget.FrameLayout

      `FrameLayout.LayoutParams`

    - ### Nested classes/interfaces inherited from class android.view.ViewGroup

      `ViewGroup.MarginLayoutParams, ViewGroup.OnHierarchyChangeListener`

    - ### Nested classes/interfaces inherited from class android.view.View

      `View.AccessibilityDelegate, View.BaseSavedState, View.DragShadowBuilder, View.MeasureSpec, View.OnApplyWindowInsetsListener, View.OnAttachStateChangeListener, View.OnCapturedPointerListener, View.OnClickListener, View.OnContextClickListener, View.OnCreateContextMenuListener, View.OnDragListener, View.OnFocusChangeListener, View.OnGenericMotionListener, View.OnHoverListener, View.OnKeyListener, View.OnLayoutChangeListener, View.OnLongClickListener, View.OnScrollChangeListener, View.OnSystemUiVisibilityChangeListener, View.OnTouchListener, View.OnUnhandledKeyEventListener`

  - ### Field Summary

    - ### Fields inherited from class android.view.ViewGroup

      `CLIP_TO_PADDING_MASK, FOCUS_AFTER_DESCENDANTS, FOCUS_BEFORE_DESCENDANTS, FOCUS_BLOCK_DESCENDANTS, LAYOUT_MODE_CLIP_BOUNDS, LAYOUT_MODE_OPTICAL_BOUNDS, PERSISTENT_ALL_CACHES, PERSISTENT_ANIMATION_CACHE, PERSISTENT_NO_CACHE, PERSISTENT_SCROLLING_CACHE`

    - ### Fields inherited from class android.view.View

      `ACCESSIBILITY_LIVE_REGION_ASSERTIVE, ACCESSIBILITY_LIVE_REGION_NONE, ACCESSIBILITY_LIVE_REGION_POLITE, ALPHA, AUTOFILL_FLAG_INCLUDE_NOT_IMPORTANT_VIEWS, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DATE, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_DAY, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_MONTH, AUTOFILL_HINT_CREDIT_CARD_EXPIRATION_YEAR, AUTOFILL_HINT_CREDIT_CARD_NUMBER, AUTOFILL_HINT_CREDIT_CARD_SECURITY_CODE, AUTOFILL_HINT_EMAIL_ADDRESS, AUTOFILL_HINT_NAME, AUTOFILL_HINT_PASSWORD, AUTOFILL_HINT_PHONE, AUTOFILL_HINT_POSTAL_ADDRESS, AUTOFILL_HINT_POSTAL_CODE, AUTOFILL_HINT_USERNAME, AUTOFILL_TYPE_DATE, AUTOFILL_TYPE_LIST, AUTOFILL_TYPE_NONE, AUTOFILL_TYPE_TEXT, AUTOFILL_TYPE_TOGGLE, DRAG_FLAG_ACCESSIBILITY_ACTION, DRAG_FLAG_GLOBAL, DRAG_FLAG_GLOBAL_PERSISTABLE_URI_PERMISSION, DRAG_FLAG_GLOBAL_PREFIX_URI_PERMISSION, DRAG_FLAG_GLOBAL_URI_READ, DRAG_FLAG_GLOBAL_URI_WRITE, DRAG_FLAG_OPAQUE, DRAWING_CACHE_QUALITY_AUTO, DRAWING_CACHE_QUALITY_HIGH, DRAWING_CACHE_QUALITY_LOW, EMPTY_STATE_SET, ENABLED_FOCUSED_SELECTED_STATE_SET, ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_FOCUSED_STATE_SET, ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, ENABLED_SELECTED_STATE_SET, ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, ENABLED_STATE_SET, ENABLED_WINDOW_FOCUSED_STATE_SET, FIND_VIEWS_WITH_CONTENT_DESCRIPTION, FIND_VIEWS_WITH_TEXT, FOCUS_BACKWARD, FOCUS_DOWN, FOCUS_FORWARD, FOCUS_LEFT, FOCUS_RIGHT, FOCUS_UP, FOCUSABLE, FOCUSABLE_AUTO, FOCUSABLES_ALL, FOCUSABLES_TOUCH_MODE, FOCUSED_SELECTED_STATE_SET, FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, FOCUSED_STATE_SET, FOCUSED_WINDOW_FOCUSED_STATE_SET, GONE, HAPTIC_FEEDBACK_ENABLED, IMPORTANT_FOR_ACCESSIBILITY_AUTO, IMPORTANT_FOR_ACCESSIBILITY_NO, IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS, IMPORTANT_FOR_ACCESSIBILITY_YES, IMPORTANT_FOR_AUTOFILL_AUTO, IMPORTANT_FOR_AUTOFILL_NO, IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS, IMPORTANT_FOR_AUTOFILL_YES, IMPORTANT_FOR_AUTOFILL_YES_EXCLUDE_DESCENDANTS, IMPORTANT_FOR_CONTENT_CAPTURE_AUTO, IMPORTANT_FOR_CONTENT_CAPTURE_NO, IMPORTANT_FOR_CONTENT_CAPTURE_NO_EXCLUDE_DESCENDANTS, IMPORTANT_FOR_CONTENT_CAPTURE_YES, IMPORTANT_FOR_CONTENT_CAPTURE_YES_EXCLUDE_DESCENDANTS, INVISIBLE, KEEP_SCREEN_ON, LAYER_TYPE_HARDWARE, LAYER_TYPE_NONE, LAYER_TYPE_SOFTWARE, LAYOUT_DIRECTION_INHERIT, LAYOUT_DIRECTION_LOCALE, LAYOUT_DIRECTION_LTR, LAYOUT_DIRECTION_RTL, MEASURED_HEIGHT_STATE_SHIFT, MEASURED_SIZE_MASK, MEASURED_STATE_MASK, MEASURED_STATE_TOO_SMALL, NO_ID, NOT_FOCUSABLE, OVER_SCROLL_ALWAYS, OVER_SCROLL_IF_CONTENT_SCROLLS, OVER_SCROLL_NEVER, PRESSED_ENABLED_FOCUSED_SELECTED_STATE_SET, PRESSED_ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_STATE_SET, PRESSED_ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_SELECTED_STATE_SET, PRESSED_ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_ENABLED_STATE_SET, PRESSED_ENABLED_WINDOW_FOCUSED_STATE_SET, PRESSED_FOCUSED_SELECTED_STATE_SET, PRESSED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_FOCUSED_STATE_SET, PRESSED_FOCUSED_WINDOW_FOCUSED_STATE_SET, PRESSED_SELECTED_STATE_SET, PRESSED_SELECTED_WINDOW_FOCUSED_STATE_SET, PRESSED_STATE_SET, PRESSED_WINDOW_FOCUSED_STATE_SET, ROTATION, ROTATION_X, ROTATION_Y, SCALE_X, SCALE_Y, SCREEN_STATE_OFF, SCREEN_STATE_ON, SCROLL_AXIS_HORIZONTAL, SCROLL_AXIS_NONE, SCROLL_AXIS_VERTICAL, SCROLL_CAPTURE_HINT_AUTO, SCROLL_CAPTURE_HINT_EXCLUDE, SCROLL_CAPTURE_HINT_EXCLUDE_DESCENDANTS, SCROLL_CAPTURE_HINT_INCLUDE, SCROLL_INDICATOR_BOTTOM, SCROLL_INDICATOR_END, SCROLL_INDICATOR_LEFT, SCROLL_INDICATOR_RIGHT, SCROLL_INDICATOR_START, SCROLL_INDICATOR_TOP, SCROLLBAR_POSITION_DEFAULT, SCROLLBAR_POSITION_LEFT, SCROLLBAR_POSITION_RIGHT, SCROLLBARS_INSIDE_INSET, SCROLLBARS_INSIDE_OVERLAY, SCROLLBARS_OUTSIDE_INSET, SCROLLBARS_OUTSIDE_OVERLAY, SELECTED_STATE_SET, SELECTED_WINDOW_FOCUSED_STATE_SET, SOUND_EFFECTS_ENABLED, STATUS_BAR_HIDDEN, STATUS_BAR_VISIBLE, SYSTEM_UI_FLAG_FULLSCREEN, SYSTEM_UI_FLAG_HIDE_NAVIGATION, SYSTEM_UI_FLAG_IMMERSIVE, SYSTEM_UI_FLAG_IMMERSIVE_STICKY, SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN, SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION, SYSTEM_UI_FLAG_LAYOUT_STABLE, SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR, SYSTEM_UI_FLAG_LIGHT_STATUS_BAR, SYSTEM_UI_FLAG_LOW_PROFILE, SYSTEM_UI_FLAG_VISIBLE, SYSTEM_UI_LAYOUT_FLAGS, TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_GRAVITY, TEXT_ALIGNMENT_INHERIT, TEXT_ALIGNMENT_TEXT_END, TEXT_ALIGNMENT_TEXT_START, TEXT_ALIGNMENT_VIEW_END, TEXT_ALIGNMENT_VIEW_START, TEXT_DIRECTION_ANY_RTL, TEXT_DIRECTION_FIRST_STRONG, TEXT_DIRECTION_FIRST_STRONG_LTR, TEXT_DIRECTION_FIRST_STRONG_RTL, TEXT_DIRECTION_INHERIT, TEXT_DIRECTION_LOCALE, TEXT_DIRECTION_LTR, TEXT_DIRECTION_RTL, TRANSLATION_X, TRANSLATION_Y, TRANSLATION_Z, VIEW_LOG_TAG, VISIBLE, WINDOW_FOCUSED_STATE_SET, X, Y, Z`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `FlutterView​(Context context)` | Constructs a `FlutterView` programmatically, without any XML attributes.
    `FlutterView​(Context context, AttributeSet attrs)` | Constructs a `FlutterView` in an XML-inflation-compliant manner.
    `FlutterView​(Context context, FlutterImageView flutterImageView)` | Constructs a `FlutterView` programmatically, without any XML attributes, uses the given `FlutterImageView` to render the Flutter UI.
    `FlutterView​(Context context, FlutterSurfaceView flutterSurfaceView)` | Constructs a `FlutterView` programmatically, without any XML attributes, uses the given `FlutterSurfaceView` to render the Flutter UI, and allows selection of a `transparencyMode`.
    `FlutterView​(Context context, FlutterTextureView flutterTextureView)` | Constructs a `FlutterView` programmatically, without any XML attributes, uses the given `FlutterTextureView` to render the Flutter UI, and allows selection of a `transparencyMode`.
    `FlutterView​(Context context, RenderMode renderMode)` | Deprecated.
    `FlutterView​(Context context, RenderMode renderMode, TransparencyMode transparencyMode)` | Deprecated.
    `FlutterView​(Context context, TransparencyMode transparencyMode)` | Deprecated.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `acquireLatestImageViewFrame()` |
    `void` | `addFlutterEngineAttachmentListener​(FlutterView.FlutterEngineAttachmentListener listener)` | Adds a `FlutterView.FlutterEngineAttachmentListener`, which is notified whenever this `FlutterView` attached to/detaches from a `FlutterEngine`.
    `void` | `addOnFirstFrameRenderedListener​(FlutterUiDisplayListener listener)` | Adds the given `listener` to this `FlutterView`, to be notified upon Flutter's first rendered frame.
    `void` | `attachOverlaySurfaceToRender​(FlutterImageView view)` |
    `void` | `attachToFlutterEngine​(FlutterEngine flutterEngine)` | Connects this `FlutterView` to the given `FlutterEngine`.
    `void` | `autofill​(SparseArray<AutofillValue> values)` |
    `boolean` | `checkInputConnectionProxy​(View view)` | Allows a `View` that is not currently the input connection target to invoke commands on the `InputMethodManager`, which is otherwise disallowed.
    `void` | `convertToImageView()` | Converts the current render surface to a `FlutterImageView` if it's not one already.
    `FlutterImageView` | `createImageView()` |
    `protected WindowInfoRepositoryCallbackAdapterWrapper` | `createWindowInfoRepo()` |
    `void` | `detachFromFlutterEngine()` | Disconnects this `FlutterView` from a previously attached `FlutterEngine`.
    `boolean` | `dispatchKeyEvent​(KeyEvent event)` | Invoked when a hardware key is pressed or released.
    `View` | `findViewByAccessibilityIdTraversal​(int accessibilityId)` | Prior to Android Q, it's impossible to add real views as descendants of virtual nodes.
    `protected boolean` | `fitSystemWindows​(Rect insets)` | Invoked when Android's desired window insets change, i.e., padding.
    `AccessibilityNodeProvider` | `getAccessibilityNodeProvider()` |
    `FlutterEngine` | `getAttachedFlutterEngine()` | Returns the `FlutterEngine` to which this `FlutterView` is currently attached, or null if this `FlutterView` is not currently attached to a `FlutterEngine`.
    `BinaryMessenger` | `getBinaryMessenger()` | Returns a `BinaryMessenger` to send platform messages with.
    `FlutterImageView` | `getCurrentImageSurface()` |
    `PointerIcon` | `getSystemPointerIcon​(int type)` | Gets a system pointer icon object for the given `type`.
    `boolean` | `hasRenderedFirstFrame()` | Returns true if an attached `FlutterEngine` has rendered at least 1 frame to this `FlutterView`.
    `boolean` | `isAttachedToFlutterEngine()` | Returns true if this `FlutterView` is currently attached to a `FlutterEngine`.
    `WindowInsets` | `onApplyWindowInsets​(WindowInsets insets)` | Invoked when Android's desired window insets change, i.e., padding.
    `protected void` | `onAttachedToWindow()` | Invoked when this is attached to the window.
    `protected void` | `onConfigurationChanged​(Configuration newConfig)` | Sends relevant configuration data from Android to Flutter when the Android `Configuration` changes.
    `InputConnection` | `onCreateInputConnection​(EditorInfo outAttrs)` | Creates an `InputConnection` to work with a `InputMethodManager`.
    `protected void` | `onDetachedFromWindow()` | Invoked when this is detached from the window.
    `boolean` | `onGenericMotionEvent​(MotionEvent event)` | Invoked by Android when a generic motion event occurs, e.g., joystick movement, mouse hover, track pad touches, scroll wheel movements, etc.
    `boolean` | `onHoverEvent​(MotionEvent event)` | Invoked by Android when a hover-compliant input system causes a hover event.
    `void` | `onProvideAutofillVirtualStructure​(ViewStructure structure, int flags)` |
    `protected void` | `onSizeChanged​(int width, int height, int oldWidth, int oldHeight)` | Invoked when this `FlutterView` changes size, including upon initial measure.
    `boolean` | `onTextInputKeyEvent​(KeyEvent keyEvent)` | Send a `KeyEvent` that is not handled by the keyboard responders to the text input system.
    `boolean` | `onTouchEvent​(MotionEvent event)` | Invoked by Android when a user touch event occurs.
    `void` | `redispatch​(KeyEvent keyEvent)` | Send a `KeyEvent` that is not handled by Flutter back to the platform.
    `void` | `removeFlutterEngineAttachmentListener​(FlutterView.FlutterEngineAttachmentListener listener)` | Removes a `FlutterView.FlutterEngineAttachmentListener` that was previously added with `addFlutterEngineAttachmentListener(FlutterEngineAttachmentListener)`.
    `void` | `removeOnFirstFrameRenderedListener​(FlutterUiDisplayListener listener)` | Removes the given `listener`, which was previously added with `addOnFirstFrameRenderedListener(FlutterUiDisplayListener)`.
    `void` | `revertImageView​(Runnable onDone)` | If the surface is rendered by a `FlutterImageView`, then calling this method will stop rendering to a `FlutterImageView`, and render on the previous surface instead.
    `protected void` | `setWindowInfoListenerDisplayFeatures​(androidx.window.layout.WindowLayoutInfo layoutInfo)` | Refresh `WindowInfoTracker` and `DisplayCutout` display features.

    - ### Methods inherited from class android.widget.FrameLayout

      `checkLayoutParams, generateDefaultLayoutParams, generateLayoutParams, generateLayoutParams, getAccessibilityClassName, getConsiderGoneChildrenWhenMeasuring, getMeasureAllChildren, onLayout, onMeasure, setForegroundGravity, setMeasureAllChildren, shouldDelayChildPressedState`

    - ### Methods inherited from class android.view.ViewGroup

      `addChildrenForAccessibility, addExtraDataToAccessibilityNodeInfo, addFocusables, addKeyboardNavigationClusters, addStatesFromChildren, addTouchables, addView, addView, addView, addView, addView, addViewInLayout, addViewInLayout, attachLayoutAnimationParameters, attachViewToParent, bringChildToFront, canAnimate, childDrawableStateChanged, childHasTransientStateChanged, cleanupLayoutState, clearChildFocus, clearDisappearingChildren, clearFocus, debug, detachAllViewsFromParent, detachViewFromParent, detachViewFromParent, detachViewsFromParent, dispatchApplyWindowInsets, dispatchCapturedPointerEvent, dispatchConfigurationChanged, dispatchCreateViewTranslationRequest, dispatchDisplayHint, dispatchDragEvent, dispatchDraw, dispatchDrawableHotspotChanged, dispatchFinishTemporaryDetach, dispatchFreezeSelfOnly, dispatchGenericFocusedEvent, dispatchGenericPointerEvent, dispatchHoverEvent, dispatchKeyEventPreIme, dispatchKeyShortcutEvent, dispatchPointerCaptureChanged, dispatchProvideAutofillStructure, dispatchProvideStructure, dispatchRestoreInstanceState, dispatchSaveInstanceState, dispatchScrollCaptureSearch, dispatchSetActivated, dispatchSetPressed, dispatchSetSelected, dispatchStartTemporaryDetach, dispatchSystemUiVisibilityChanged, dispatchThawSelfOnly, dispatchTouchEvent, dispatchTrackballEvent, dispatchUnhandledMove, dispatchVisibilityChanged, dispatchWindowFocusChanged, dispatchWindowInsetsAnimationEnd, dispatchWindowInsetsAnimationPrepare, dispatchWindowInsetsAnimationProgress, dispatchWindowInsetsAnimationStart, dispatchWindowSystemUiVisiblityChanged, dispatchWindowVisibilityChanged, drawableStateChanged, drawChild, endViewTransition, findFocus, findViewsWithText, focusableViewAvailable, focusSearch, gatherTransparentRegion, getChildAt, getChildCount, getChildDrawingOrder, getChildDrawingOrder, getChildMeasureSpec, getChildStaticTransformation, getChildVisibleRect, getClipChildren, getClipToPadding, getDescendantFocusability, getFocusedChild, getLayoutAnimation, getLayoutAnimationListener, getLayoutMode, getLayoutTransition, getNestedScrollAxes, getOverlay, getPersistentDrawingCache, getTouchscreenBlocksFocus, hasFocus, hasTransientState, indexOfChild, invalidateChild, invalidateChildInParent, isAlwaysDrawnWithCacheEnabled, isAnimationCacheEnabled, isChildrenDrawingOrderEnabled, isChildrenDrawnWithCacheEnabled, isLayoutSuppressed, isMotionEventSplittingEnabled, isTransitionGroup, jumpDrawablesToCurrentState, layout, measureChild, measureChildren, measureChildWithMargins, notifySubtreeAccessibilityStateChanged, offsetDescendantRectToMyCoords, offsetRectIntoDescendantCoords, onCreateDrawableState, onDescendantInvalidated, onInterceptHoverEvent, onInterceptTouchEvent, onNestedFling, onNestedPreFling, onNestedPrePerformAccessibilityAction, onNestedPreScroll, onNestedScroll, onNestedScrollAccepted, onRequestFocusInDescendants, onRequestSendAccessibilityEvent, onResolvePointerIcon, onStartNestedScroll, onStopNestedScroll, onViewAdded, onViewRemoved, recomputeViewAttributes, removeAllViews, removeAllViewsInLayout, removeDetachedView, removeView, removeViewAt, removeViewInLayout, removeViews, removeViewsInLayout, requestChildFocus, requestChildRectangleOnScreen, requestDisallowInterceptTouchEvent, requestFocus, requestSendAccessibilityEvent, requestTransparentRegion, restoreDefaultFocus, scheduleLayoutAnimation, setAddStatesFromChildren, setAlwaysDrawnWithCacheEnabled, setAnimationCacheEnabled, setChildrenDrawingCacheEnabled, setChildrenDrawingOrderEnabled, setChildrenDrawnWithCacheEnabled, setClipChildren, setClipToPadding, setDescendantFocusability, setLayoutAnimation, setLayoutAnimationListener, setLayoutMode, setLayoutTransition, setMotionEventSplittingEnabled, setOnHierarchyChangeListener, setPersistentDrawingCache, setStaticTransformationsEnabled, setTouchscreenBlocksFocus, setTransitionGroup, setWindowInsetsAnimationCallback, showContextMenuForChild, showContextMenuForChild, startActionModeForChild, startActionModeForChild, startLayoutAnimation, startViewTransition, suppressLayout, updateViewLayout`

    - ### Methods inherited from class android.view.View

      `addFocusables, addOnAttachStateChangeListener, addOnLayoutChangeListener, addOnUnhandledKeyEventListener, animate, announceForAccessibility, autofill, awakenScrollBars, awakenScrollBars, awakenScrollBars, bringToFront, buildDrawingCache, buildDrawingCache, buildLayer, callOnClick, cancelDragAndDrop, cancelLongPress, cancelPendingInputEvents, canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, canScrollHorizontally, canScrollVertically, clearAnimation, clearViewTranslationCallback, combineMeasuredStates, computeHorizontalScrollExtent, computeHorizontalScrollOffset, computeHorizontalScrollRange, computeScroll, computeSystemWindowInsets, computeVerticalScrollExtent, computeVerticalScrollOffset, computeVerticalScrollRange, createAccessibilityNodeInfo, createContextMenu, destroyDrawingCache, dispatchGenericMotionEvent, dispatchNestedFling, dispatchNestedPreFling, dispatchNestedPrePerformAccessibilityAction, dispatchNestedPreScroll, dispatchNestedScroll, dispatchPopulateAccessibilityEvent, draw, drawableHotspotChanged, findViewById, findViewWithTag, focusSearch, forceHasOverlappingRendering, forceLayout, generateDisplayHash, generateViewId, getAccessibilityDelegate, getAccessibilityLiveRegion, getAccessibilityPaneTitle, getAccessibilityTraversalAfter, getAccessibilityTraversalBefore, getAlpha, getAnimation, getAnimationMatrix, getApplicationWindowToken, getAttributeResolutionStack, getAttributeSourceResourceMap, getAutofillHints, getAutofillId, getAutofillType, getAutofillValue, getBackground, getBackgroundTintBlendMode, getBackgroundTintList, getBackgroundTintMode, getBaseline, getBottom, getBottomFadingEdgeStrength, getBottomPaddingOffset, getCameraDistance, getClipBounds, getClipBounds, getClipToOutline, getContentCaptureSession, getContentDescription, getContext, getContextMenuInfo, getDefaultFocusHighlightEnabled, getDefaultSize, getDisplay, getDrawableState, getDrawingCache, getDrawingCache, getDrawingCacheBackgroundColor, getDrawingCacheQuality, getDrawingRect, getDrawingTime, getElevation, getExplicitStyle, getFilterTouchesWhenObscured, getFitsSystemWindows, getFocusable, getFocusables, getFocusedRect, getForeground, getForegroundGravity, getForegroundTintBlendMode, getForegroundTintList, getForegroundTintMode, getGlobalVisibleRect, getGlobalVisibleRect, getHandler, getHasOverlappingRendering, getHeight, getHitRect, getHorizontalFadingEdgeLength, getHorizontalScrollbarHeight, getHorizontalScrollbarThumbDrawable, getHorizontalScrollbarTrackDrawable, getId, getImportantForAccessibility, getImportantForAutofill, getImportantForContentCapture, getKeepScreenOn, getKeyDispatcherState, getLabelFor, getLayerType, getLayoutDirection, getLayoutParams, getLeft, getLeftFadingEdgeStrength, getLeftPaddingOffset, getLocalVisibleRect, getLocationInSurface, getLocationInWindow, getLocationOnScreen, getMatrix, getMeasuredHeight, getMeasuredHeightAndState, getMeasuredState, getMeasuredWidth, getMeasuredWidthAndState, getMinimumHeight, getMinimumWidth, getNextClusterForwardId, getNextFocusDownId, getNextFocusForwardId, getNextFocusLeftId, getNextFocusRightId, getNextFocusUpId, getOnFocusChangeListener, getOutlineAmbientShadowColor, getOutlineProvider, getOutlineSpotShadowColor, getOverScrollMode, getPaddingBottom, getPaddingEnd, getPaddingLeft, getPaddingRight, getPaddingStart, getPaddingTop, getParent, getParentForAccessibility, getPivotX, getPivotY, getPointerIcon, getReceiveContentMimeTypes, getResources, getRevealOnFocusHint, getRight, getRightFadingEdgeStrength, getRightPaddingOffset, getRootSurfaceControl, getRootView, getRootWindowInsets, getRotation, getRotationX, getRotationY, getScaleX, getScaleY, getScrollBarDefaultDelayBeforeFade, getScrollBarFadeDuration, getScrollBarSize, getScrollBarStyle, getScrollCaptureHint, getScrollIndicators, getScrollX, getScrollY, getSolidColor, getSourceLayoutResId, getStateDescription, getStateListAnimator, getSuggestedMinimumHeight, getSuggestedMinimumWidth, getSystemGestureExclusionRects, getSystemUiVisibility, getTag, getTag, getTextAlignment, getTextDirection, getTooltipText, getTop, getTopFadingEdgeStrength, getTopPaddingOffset, getTouchables, getTouchDelegate, getTransitionAlpha, getTransitionName, getTranslationX, getTranslationY, getTranslationZ, getUniqueDrawingId, getVerticalFadingEdgeLength, getVerticalScrollbarPosition, getVerticalScrollbarThumbDrawable, getVerticalScrollbarTrackDrawable, getVerticalScrollbarWidth, getViewTranslationResponse, getViewTreeObserver, getVisibility, getWidth, getWindowAttachCount, getWindowId, getWindowInsetsController, getWindowSystemUiVisibility, getWindowToken, getWindowVisibility, getWindowVisibleDisplayFrame, getX, getY, getZ, hasExplicitFocusable, hasFocusable, hasNestedScrollingParent, hasOnClickListeners, hasOnLongClickListeners, hasOverlappingRendering, hasPointerCapture, hasWindowFocus, inflate, invalidate, invalidate, invalidate, invalidateDrawable, invalidateOutline, isAccessibilityFocused, isAccessibilityHeading, isActivated, isAttachedToWindow, isClickable, isContextClickable, isDirty, isDrawingCacheEnabled, isDuplicateParentStateEnabled, isEnabled, isFocusable, isFocusableInTouchMode, isFocused, isFocusedByDefault, isForceDarkAllowed, isHapticFeedbackEnabled, isHardwareAccelerated, isHorizontalFadingEdgeEnabled, isHorizontalScrollBarEnabled, isHovered, isImportantForAccessibility, isImportantForAutofill, isImportantForContentCapture, isInEditMode, isInLayout, isInTouchMode, isKeyboardNavigationCluster, isLaidOut, isLayoutDirectionResolved, isLayoutRequested, isLongClickable, isNestedScrollingEnabled, isOpaque, isPaddingOffsetRequired, isPaddingRelative, isPivotSet, isPressed, isSaveEnabled, isSaveFromParentEnabled, isScreenReaderFocusable, isScrollbarFadingEnabled, isScrollContainer, isSelected, isShowingLayoutBounds, isShown, isSoundEffectsEnabled, isTemporarilyDetached, isTextAlignmentResolved, isTextDirectionResolved, isVerticalFadingEdgeEnabled, isVerticalScrollBarEnabled, isVisibleToUserForAutofill, keyboardNavigationClusterSearch, measure, mergeDrawableStates, offsetLeftAndRight, offsetTopAndBottom, onAnimationEnd, onAnimationStart, onCancelPendingInputEvents, onCapturedPointerEvent, onCheckIsTextEditor, onCreateContextMenu, onCreateViewTranslationRequest, onCreateVirtualViewTranslationRequests, onDisplayHint, onDragEvent, onDraw, onDrawForeground, onDrawScrollBars, onFilterTouchEventForSecurity, onFinishInflate, onFinishTemporaryDetach, onFocusChanged, onHoverChanged, onInitializeAccessibilityEvent, onInitializeAccessibilityNodeInfo, onKeyDown, onKeyLongPress, onKeyMultiple, onKeyPreIme, onKeyShortcut, onKeyUp, onOverScrolled, onPointerCaptureChange, onPopulateAccessibilityEvent, onProvideAutofillStructure, onProvideContentCaptureStructure, onProvideStructure, onProvideVirtualStructure, onReceiveContent, onRestoreInstanceState, onRtlPropertiesChanged, onSaveInstanceState, onScreenStateChanged, onScrollCaptureSearch, onScrollChanged, onSetAlpha, onStartTemporaryDetach, onTrackballEvent, onViewTranslationResponse, onVirtualViewTranslationResponses, onVisibilityAggregated, onVisibilityChanged, onWindowFocusChanged, onWindowSystemUiVisibilityChanged, onWindowVisibilityChanged, overScrollBy, performAccessibilityAction, performClick, performContextClick, performContextClick, performHapticFeedback, performHapticFeedback, performLongClick, performLongClick, performReceiveContent, playSoundEffect, post, postDelayed, postInvalidate, postInvalidate, postInvalidateDelayed, postInvalidateDelayed, postInvalidateOnAnimation, postInvalidateOnAnimation, postOnAnimation, postOnAnimationDelayed, refreshDrawableState, releasePointerCapture, removeCallbacks, removeOnAttachStateChangeListener, removeOnLayoutChangeListener, removeOnUnhandledKeyEventListener, requestApplyInsets, requestFitSystemWindows, requestFocus, requestFocus, requestFocusFromTouch, requestLayout, requestPointerCapture, requestRectangleOnScreen, requestRectangleOnScreen, requestUnbufferedDispatch, requestUnbufferedDispatch, requireViewById, resetPivot, resolveSize, resolveSizeAndState, restoreHierarchyState, saveAttributeDataForStyleable, saveHierarchyState, scheduleDrawable, scrollBy, scrollTo, sendAccessibilityEvent, sendAccessibilityEventUnchecked, setAccessibilityDelegate, setAccessibilityHeading, setAccessibilityLiveRegion, setAccessibilityPaneTitle, setAccessibilityTraversalAfter, setAccessibilityTraversalBefore, setActivated, setAllowClickWhenDisabled, setAlpha, setAnimation, setAnimationMatrix, setAutofillHints, setAutofillId, setBackground, setBackgroundColor, setBackgroundDrawable, setBackgroundResource, setBackgroundTintBlendMode, setBackgroundTintList, setBackgroundTintMode, setBottom, setCameraDistance, setClickable, setClipBounds, setClipToOutline, setContentCaptureSession, setContentDescription, setContextClickable, setDefaultFocusHighlightEnabled, setDrawingCacheBackgroundColor, setDrawingCacheEnabled, setDrawingCacheQuality, setDuplicateParentStateEnabled, setElevation, setEnabled, setFadingEdgeLength, setFilterTouchesWhenObscured, setFitsSystemWindows, setFocusable, setFocusable, setFocusableInTouchMode, setFocusedByDefault, setForceDarkAllowed, setForeground, setForegroundTintBlendMode, setForegroundTintList, setForegroundTintMode, setHapticFeedbackEnabled, setHasTransientState, setHorizontalFadingEdgeEnabled, setHorizontalScrollBarEnabled, setHorizontalScrollbarThumbDrawable, setHorizontalScrollbarTrackDrawable, setHovered, setId, setImportantForAccessibility, setImportantForAutofill, setImportantForContentCapture, setKeepScreenOn, setKeyboardNavigationCluster, setLabelFor, setLayerPaint, setLayerType, setLayoutDirection, setLayoutParams, setLeft, setLeftTopRightBottom, setLongClickable, setMeasuredDimension, setMinimumHeight, setMinimumWidth, setNestedScrollingEnabled, setNextClusterForwardId, setNextFocusDownId, setNextFocusForwardId, setNextFocusLeftId, setNextFocusRightId, setNextFocusUpId, setOnApplyWindowInsetsListener, setOnCapturedPointerListener, setOnClickListener, setOnContextClickListener, setOnCreateContextMenuListener, setOnDragListener, setOnFocusChangeListener, setOnGenericMotionListener, setOnHoverListener, setOnKeyListener, setOnLongClickListener, setOnReceiveContentListener, setOnScrollChangeListener, setOnSystemUiVisibilityChangeListener, setOnTouchListener, setOutlineAmbientShadowColor, setOutlineProvider, setOutlineSpotShadowColor, setOverScrollMode, setPadding, setPaddingRelative, setPivotX, setPivotY, setPointerIcon, setPressed, setRenderEffect, setRevealOnFocusHint, setRight, setRotation, setRotationX, setRotationY, setSaveEnabled, setSaveFromParentEnabled, setScaleX, setScaleY, setScreenReaderFocusable, setScrollBarDefaultDelayBeforeFade, setScrollBarFadeDuration, setScrollbarFadingEnabled, setScrollBarSize, setScrollBarStyle, setScrollCaptureCallback, setScrollCaptureHint, setScrollContainer, setScrollIndicators, setScrollIndicators, setScrollX, setScrollY, setSelected, setSoundEffectsEnabled, setStateDescription, setStateListAnimator, setSystemGestureExclusionRects, setSystemUiVisibility, setTag, setTag, setTextAlignment, setTextDirection, setTooltipText, setTop, setTouchDelegate, setTransitionAlpha, setTransitionName, setTransitionVisibility, setTranslationX, setTranslationY, setTranslationZ, setVerticalFadingEdgeEnabled, setVerticalScrollBarEnabled, setVerticalScrollbarPosition, setVerticalScrollbarThumbDrawable, setVerticalScrollbarTrackDrawable, setViewTranslationCallback, setVisibility, setWillNotCacheDrawing, setWillNotDraw, setX, setY, setZ, showContextMenu, showContextMenu, startActionMode, startActionMode, startAnimation, startDrag, startDragAndDrop, startNestedScroll, stopNestedScroll, toString, transformMatrixToGlobal, transformMatrixToLocal, unscheduleDrawable, unscheduleDrawable, updateDragShadow, verifyDrawable, willNotCacheDrawing, willNotDraw`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface io.flutter.plugin.mouse.MouseCursorPlugin.MouseCursorViewDelegate

      `setPointerIcon`

    - ### Methods inherited from interface android.view.ViewParent

      `canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, createContextMenu, getLayoutDirection, getParent, getParentForAccessibility, getTextAlignment, getTextDirection, isLayoutDirectionResolved, isLayoutRequested, isTextAlignmentResolved, isTextDirectionResolved, keyboardNavigationClusterSearch, requestFitSystemWindows, requestLayout`

- - ### Constructor Detail

    - #### FlutterView

          public FlutterView​(@NonNull
                             Context context)

      Constructs a `FlutterView` programmatically, without any XML attributes.

      - A `FlutterSurfaceView` is used to render the Flutter UI.
      - `transparencyMode` defaults to `TransparencyMode.opaque`.
      `FlutterView` requires an `Activity` instead of a generic `Context` to be compatible with `PlatformViewsController`.

    - #### FlutterView

          @Deprecated
          public FlutterView​(@NonNull
                             Context context,
                             @NonNull
                             RenderMode renderMode)

      Deprecated.
      Deprecated - use `FlutterView(Context, FlutterSurfaceView)` or `FlutterView(Context, FlutterTextureView)` or `FlutterView(Context, FlutterImageView)` instead.

    - #### FlutterView

          @Deprecated
          public FlutterView​(@NonNull
                             Context context,
                             @NonNull
                             TransparencyMode transparencyMode)

      Deprecated.
      Deprecated - use `FlutterView(Context, FlutterSurfaceView)` or `FlutterView(Context, FlutterTextureView)` instead, and configure the incoming `FlutterSurfaceView` or `FlutterTextureView` for transparency as desired.

      Constructs a `FlutterView` programmatically, without any XML attributes, uses a `FlutterSurfaceView` to render the Flutter UI, and allows selection of a `transparencyMode`.

      `FlutterView` requires an `Activity` instead of a generic `Context` to be compatible with `PlatformViewsController`.

    - #### FlutterView

          public FlutterView​(@NonNull
                             Context context,
                             @NonNull
                             FlutterSurfaceView flutterSurfaceView)

      Constructs a `FlutterView` programmatically, without any XML attributes, uses the given `FlutterSurfaceView` to render the Flutter UI, and allows selection of a `transparencyMode`.

      `FlutterView` requires an `Activity` instead of a generic `Context` to be compatible with `PlatformViewsController`.

    - #### FlutterView

          public FlutterView​(@NonNull
                             Context context,
                             @NonNull
                             FlutterTextureView flutterTextureView)

      Constructs a `FlutterView` programmatically, without any XML attributes, uses the given `FlutterTextureView` to render the Flutter UI, and allows selection of a `transparencyMode`.

      `FlutterView` requires an `Activity` instead of a generic `Context` to be compatible with `PlatformViewsController`.

    - #### FlutterView

          public FlutterView​(@NonNull
                             Context context,
                             @NonNull
                             FlutterImageView flutterImageView)

      Constructs a `FlutterView` programmatically, without any XML attributes, uses the given `FlutterImageView` to render the Flutter UI.

      `FlutterView` requires an `Activity` instead of a generic `Context` to be compatible with `PlatformViewsController`.

    - #### FlutterView

          public FlutterView​(@NonNull
                             Context context,
                             @Nullable
                             AttributeSet attrs)

      Constructs a `FlutterView` in an XML-inflation-compliant manner.

      `FlutterView` requires an `Activity` instead of a generic `Context` to be compatible with `PlatformViewsController`.

    - #### FlutterView

          @Deprecated
          public FlutterView​(@NonNull
                             Context context,
                             @NonNull
                             RenderMode renderMode,
                             @NonNull
                             TransparencyMode transparencyMode)

      Deprecated.
      Deprecated - use `FlutterView(Context, FlutterSurfaceView)` or `FlutterView(Context, FlutterTextureView)` instead, and configure the incoming `FlutterSurfaceView` or `FlutterTextureView` for transparency as desired.

  - ### Method Detail

    - #### hasRenderedFirstFrame

          public boolean hasRenderedFirstFrame()

      Returns true if an attached `FlutterEngine` has rendered at least 1 frame to this `FlutterView`.

      Returns false if no `FlutterEngine` is attached.

      This flag is specific to a given `FlutterEngine`. The following hypothetical timeline demonstrates how this flag changes over time.

      1. `flutterEngineA` is attached to this `FlutterView`: returns false
      2. `flutterEngineA` renders its first frame to this `FlutterView`: returns true
      3. `flutterEngineA` is detached from this `FlutterView`: returns false
      4. `flutterEngineB` is attached to this `FlutterView`: returns false
      5. `flutterEngineB` renders its first frame to this `FlutterView`: returns true

    - #### addOnFirstFrameRenderedListener

          public void addOnFirstFrameRenderedListener​(@NonNull
                                                      FlutterUiDisplayListener listener)

      Adds the given `listener` to this `FlutterView`, to be notified upon Flutter's first rendered frame.

    - #### removeOnFirstFrameRenderedListener

          public void removeOnFirstFrameRenderedListener​(@NonNull
                                                         FlutterUiDisplayListener listener)

      Removes the given `listener`, which was previously added with `addOnFirstFrameRenderedListener(FlutterUiDisplayListener)`.

    - #### onConfigurationChanged

          protected void onConfigurationChanged​(@NonNull
                                                Configuration newConfig)

      Sends relevant configuration data from Android to Flutter when the Android `Configuration` changes.

      The Android `Configuration` might change as a result of device orientation change, device language change, device text scale factor change, etc.

      Overrides:
        `onConfigurationChanged` in class `View`

    - #### onSizeChanged

          protected void onSizeChanged​(int width,
                                       int height,
                                       int oldWidth,
                                       int oldHeight)

      Invoked when this `FlutterView` changes size, including upon initial measure.

      The initial measure reports an `oldWidth` and `oldHeight` of zero.

      Flutter cares about the width and height of the view that displays it on the host platform. Therefore, when this method is invoked, the new width and height are communicated to Flutter as the "physical size" of the view that displays Flutter's UI.

      Overrides:
        `onSizeChanged` in class `View`

    - #### createWindowInfoRepo

          protected WindowInfoRepositoryCallbackAdapterWrapper createWindowInfoRepo()

    - #### onAttachedToWindow

          protected void onAttachedToWindow()

      Invoked when this is attached to the window.

      We register for `WindowInfoTracker` updates.

      Overrides:
        `onAttachedToWindow` in class `ViewGroup`

    - #### onDetachedFromWindow

          protected void onDetachedFromWindow()

      Invoked when this is detached from the window.

      We unregister from `WindowInfoTracker` updates.

      Overrides:
        `onDetachedFromWindow` in class `ViewGroup`

    - #### setWindowInfoListenerDisplayFeatures

          protected void setWindowInfoListenerDisplayFeatures​(androidx.window.layout.WindowLayoutInfo layoutInfo)

      Refresh `WindowInfoTracker` and `DisplayCutout` display features. Fold, hinge and cutout areas are populated here.

    - #### onApplyWindowInsets

          @RequiresApi(20)
          @NonNull
          public final WindowInsets onApplyWindowInsets​(@NonNull
                                                        WindowInsets insets)

      Invoked when Android's desired window insets change, i.e., padding.

      Flutter does not use a standard `View` hierarchy and therefore Flutter is unaware of these insets. Therefore, this method calculates the viewport metrics that Flutter should use and then sends those metrics to Flutter.

      This callback is not present in API < 20, which means lower API devices will see the wider than expected padding when the status and navigation bars are hidden.

      Overrides:
        `onApplyWindowInsets` in class `View`

    - #### fitSystemWindows

          protected boolean fitSystemWindows​(@NonNull
                                             Rect insets)

      Invoked when Android's desired window insets change, i.e., padding.

      `fitSystemWindows` is an earlier version of `onApplyWindowInsets(WindowInsets)`. See that method for more details about how window insets relate to Flutter.

      Overrides:
        `fitSystemWindows` in class `View`

    - #### onCreateInputConnection

          @Nullable
          public InputConnection onCreateInputConnection​(@NonNull
                                                         EditorInfo outAttrs)

      Creates an `InputConnection` to work with a `InputMethodManager`.

      Any `View` that can take focus or process text input must implement this method by returning a non-null `InputConnection`. Flutter may render one or many focusable and text-input widgets, therefore `FlutterView` must support an `InputConnection`.

      The `InputConnection` returned from this method comes from a `TextInputPlugin`, which is owned by this `FlutterView`. A `TextInputPlugin` exists to encapsulate the nuances of input communication, rather than spread that logic throughout this `FlutterView`.

      Overrides:
        `onCreateInputConnection` in class `View`

    - #### checkInputConnectionProxy

          public boolean checkInputConnectionProxy​(View view)

      Allows a `View` that is not currently the input connection target to invoke commands on the `InputMethodManager`, which is otherwise disallowed.

      Returns true to allow non-input-connection-targets to invoke methods on `InputMethodManager`, or false to exclusively allow the input connection target to invoke such methods.

      Overrides:
        `checkInputConnectionProxy` in class `View`

    - #### dispatchKeyEvent

          public boolean dispatchKeyEvent​(@NonNull
                                          KeyEvent event)

      Invoked when a hardware key is pressed or released.

      This method is typically invoked in response to the press of a physical keyboard key or a D-pad button. It is generally not invoked when a virtual software keyboard is used, though a software keyboard may choose to invoke this method in some situations.

      `KeyEvent`s are sent from Android to Flutter. `KeyboardManager` may do some additional work with the given `KeyEvent`, e.g., combine this `keyCode` with the previous `keyCode` to generate a unicode combined character.

      Overrides:
        `dispatchKeyEvent` in class `ViewGroup`

    - #### onTouchEvent

          public boolean onTouchEvent​(@NonNull
                                      MotionEvent event)

      Invoked by Android when a user touch event occurs.

      Flutter handles all of its own gesture detection and processing, therefore this method forwards all `MotionEvent` data from Android to Flutter.

      Overrides:
        `onTouchEvent` in class `View`

    - #### onGenericMotionEvent

          public boolean onGenericMotionEvent​(@NonNull
                                              MotionEvent event)

      Invoked by Android when a generic motion event occurs, e.g., joystick movement, mouse hover, track pad touches, scroll wheel movements, etc.

      Flutter handles all of its own gesture detection and processing, therefore this method forwards all `MotionEvent` data from Android to Flutter.

      Overrides:
        `onGenericMotionEvent` in class `View`

    - #### onHoverEvent

          public boolean onHoverEvent​(@NonNull
                                      MotionEvent event)

      Invoked by Android when a hover-compliant input system causes a hover event.

      An example of hover events is a stylus sitting near an Android screen. As the stylus moves from outside a `View` to hover over a `View`, or move around within a `View`, or moves from over a `View` to outside a `View`, a corresponding `MotionEvent` is reported via this method.

      Hover events can be used for accessibility touch exploration and therefore are processed here for accessibility purposes.

      Overrides:
        `onHoverEvent` in class `View`

    - #### getAccessibilityNodeProvider

          @Nullable
          public AccessibilityNodeProvider getAccessibilityNodeProvider()

      Overrides:
        `getAccessibilityNodeProvider` in class `View`

    - #### findViewByAccessibilityIdTraversal

          @Nullable
          public View findViewByAccessibilityIdTraversal​(int accessibilityId)

      Prior to Android Q, it's impossible to add real views as descendants of virtual nodes. This breaks accessibility when an Android view is embedded in a Flutter app.

      This method overrides a hidden method in `ViewGroup` to workaround this limitation. This solution is derivated from Jetpack Compose, and can be found in the Android source code as well.

      This workaround finds the descendant `View` that matches the provided accessibility id.

      Parameters:
        `accessibilityId` - The view accessibility id.
      Returns:
        The view matching the accessibility id if any.

    - #### getSystemPointerIcon

          @RequiresApi(24)
          @NonNull
          public PointerIcon getSystemPointerIcon​(int type)

      Description copied from interface: `io.flutter.plugin.mouse.MouseCursorPlugin.MouseCursorViewDelegate`
      Gets a system pointer icon object for the given `type`.

      If typeis not recognized, returns the default pointer icon.

      This is typically implemented by calling `PointerIcon.getSystemIcon(android.content.Context, int)` with the context associated with this view.

      Specified by:
        `getSystemPointerIcon` in interface `io.flutter.plugin.mouse.MouseCursorPlugin.MouseCursorViewDelegate`

    - #### getBinaryMessenger

          public BinaryMessenger getBinaryMessenger()

      Description copied from interface: `KeyboardManager.ViewDelegate`
      Returns a `BinaryMessenger` to send platform messages with.
      Specified by:
        `getBinaryMessenger` in interface `KeyboardManager.ViewDelegate`

    - #### onTextInputKeyEvent

          public boolean onTextInputKeyEvent​(@NonNull
                                             KeyEvent keyEvent)

      Description copied from interface: `KeyboardManager.ViewDelegate`
      Send a `KeyEvent` that is not handled by the keyboard responders to the text input system.
      Specified by:
        `onTextInputKeyEvent` in interface `KeyboardManager.ViewDelegate`
      Parameters:
        `keyEvent` - the `KeyEvent` that should be processed by the text input system. It must not be null.
      Returns:
        Whether the text input handles the key event.

    - #### redispatch

          public void redispatch​(@NonNull
                                 KeyEvent keyEvent)

      Description copied from interface: `KeyboardManager.ViewDelegate`
      Send a `KeyEvent` that is not handled by Flutter back to the platform.
      Specified by:
        `redispatch` in interface `KeyboardManager.ViewDelegate`

    - #### attachToFlutterEngine

          public void attachToFlutterEngine​(@NonNull
                                            FlutterEngine flutterEngine)

      Connects this `FlutterView` to the given `FlutterEngine`.

      This `FlutterView` will begin rendering the UI painted by the given `FlutterEngine`. This `FlutterView` will also begin forwarding interaction events from this `FlutterView` to the given `FlutterEngine`, e.g., user touch events, accessibility events, keyboard events, and others.

      See `detachFromFlutterEngine()` for information on how to detach from a `FlutterEngine`.

    - #### detachFromFlutterEngine

          public void detachFromFlutterEngine()

      Disconnects this `FlutterView` from a previously attached `FlutterEngine`.

      This `FlutterView` will clear its UI and stop forwarding all events to the previously-attached `FlutterEngine`. This includes touch events, accessibility events, keyboard events, and others.

      See `attachToFlutterEngine(FlutterEngine)` for information on how to attach a `FlutterEngine`.

    - #### createImageView

          @NonNull
          public FlutterImageView createImageView()

    - #### getCurrentImageSurface

          public FlutterImageView getCurrentImageSurface()

    - #### convertToImageView

          public void convertToImageView()

      Converts the current render surface to a `FlutterImageView` if it's not one already. Otherwise, it resizes the `FlutterImageView` based on the current view size.

    - #### revertImageView

          public void revertImageView​(@NonNull
                                      Runnable onDone)

      If the surface is rendered by a `FlutterImageView`, then calling this method will stop rendering to a `FlutterImageView`, and render on the previous surface instead.
      Parameters:
        `onDone` - a callback called when Flutter UI is rendered on the previous surface. Use this callback to perform cleanups. For example, destroy overlay surfaces.

    - #### attachOverlaySurfaceToRender

          public void attachOverlaySurfaceToRender​(@NonNull
                                                   FlutterImageView view)

    - #### acquireLatestImageViewFrame

          public boolean acquireLatestImageViewFrame()

    - #### isAttachedToFlutterEngine

          public boolean isAttachedToFlutterEngine()

      Returns true if this `FlutterView` is currently attached to a `FlutterEngine`.

    - #### getAttachedFlutterEngine

          @Nullable
          public FlutterEngine getAttachedFlutterEngine()

      Returns the `FlutterEngine` to which this `FlutterView` is currently attached, or null if this `FlutterView` is not currently attached to a `FlutterEngine`.

    - #### addFlutterEngineAttachmentListener

          public void addFlutterEngineAttachmentListener​(@NonNull
                                                         FlutterView.FlutterEngineAttachmentListener listener)

      Adds a `FlutterView.FlutterEngineAttachmentListener`, which is notified whenever this `FlutterView` attached to/detaches from a `FlutterEngine`.

    - #### removeFlutterEngineAttachmentListener

          public void removeFlutterEngineAttachmentListener​(@NonNull
                                                            FlutterView.FlutterEngineAttachmentListener listener)

      Removes a `FlutterView.FlutterEngineAttachmentListener` that was previously added with `addFlutterEngineAttachmentListener(FlutterEngineAttachmentListener)`.

    - #### onProvideAutofillVirtualStructure

          public void onProvideAutofillVirtualStructure​(@NonNull
                                                        ViewStructure structure,
                                                        int flags)

      Overrides:
        `onProvideAutofillVirtualStructure` in class `View`

    - #### autofill

          public void autofill​(@NonNull
                               SparseArray<AutofillValue> values)

      Overrides:
        `autofill` in class `View`