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 correspondingFlutterEngine
.A
FlutterView
can operate in 2 differentRenderMode
s:RenderMode.surface
, which paints a Flutter UI to aSurfaceView
. This mode has the best performance, but aFlutterView
in this mode cannot be positioned between 2 other AndroidView
s in the z-index, nor can it be animated/transformed. Unless the special capabilities of aSurfaceTexture
are required, developers should strongly prefer this render mode.RenderMode.texture
, which paints a Flutter UI to aSurfaceTexture
. This mode is not as performant asRenderMode.surface
, but aFlutterView
in this mode can be animated and transformed, as well as positioned in the z-index between 2+ other AndroidViews
. Unless the special capabilities of aSurfaceTexture
are required, developers should strongly prefer theRenderMode.surface
render mode.
SurfaceView
andTextureView
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
FlutterView.FlutterEngineAttachmentListener
Listener that is notified when aFlutterEngine
is attached to/detached from a givenFlutterView
.-
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 aFlutterView
programmatically, without any XML attributes.FlutterView(Context context, AttributeSet attrs)
Constructs aFlutterView
in an XML-inflation-compliant manner.FlutterView(Context context, FlutterImageView flutterImageView)
Constructs aFlutterView
programmatically, without any XML attributes, uses the givenFlutterImageView
to render the Flutter UI.FlutterView(Context context, FlutterSurfaceView flutterSurfaceView)
Constructs aFlutterView
programmatically, without any XML attributes, uses the givenFlutterSurfaceView
to render the Flutter UI, and allows selection of atransparencyMode
.FlutterView(Context context, FlutterTextureView flutterTextureView)
Constructs aFlutterView
programmatically, without any XML attributes, uses the givenFlutterTextureView
to render the Flutter UI, and allows selection of atransparencyMode
.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 aFlutterView.FlutterEngineAttachmentListener
, which is notified whenever thisFlutterView
attached to/detaches from aFlutterEngine
.void
addOnFirstFrameRenderedListener(FlutterUiDisplayListener listener)
Adds the givenlistener
to thisFlutterView
, to be notified upon Flutter's first rendered frame.void
attachOverlaySurfaceToRender(FlutterImageView view)
void
attachToFlutterEngine(FlutterEngine flutterEngine)
Connects thisFlutterView
to the givenFlutterEngine
.void
autofill(SparseArray<AutofillValue> values)
boolean
checkInputConnectionProxy(View view)
Allows aView
that is not currently the input connection target to invoke commands on theInputMethodManager
, which is otherwise disallowed.void
convertToImageView()
Converts the current render surface to aFlutterImageView
if it's not one already.FlutterImageView
createImageView()
protected WindowInfoRepositoryCallbackAdapterWrapper
createWindowInfoRepo()
void
detachFromFlutterEngine()
Disconnects thisFlutterView
from a previously attachedFlutterEngine
.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 theFlutterEngine
to which thisFlutterView
is currently attached, or null if thisFlutterView
is not currently attached to aFlutterEngine
.BinaryMessenger
getBinaryMessenger()
Returns aBinaryMessenger
to send platform messages with.FlutterImageView
getCurrentImageSurface()
PointerIcon
getSystemPointerIcon(int type)
Gets a system pointer icon object for the giventype
.boolean
hasRenderedFirstFrame()
Returns true if an attachedFlutterEngine
has rendered at least 1 frame to thisFlutterView
.boolean
isAttachedToFlutterEngine()
Returns true if thisFlutterView
is currently attached to aFlutterEngine
.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 AndroidConfiguration
changes.InputConnection
onCreateInputConnection(EditorInfo outAttrs)
Creates anInputConnection
to work with aInputMethodManager
.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 thisFlutterView
changes size, including upon initial measure.boolean
onTextInputKeyEvent(KeyEvent keyEvent)
Send aKeyEvent
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 aKeyEvent
that is not handled by Flutter back to the platform.void
removeFlutterEngineAttachmentListener(FlutterView.FlutterEngineAttachmentListener listener)
Removes aFlutterView.FlutterEngineAttachmentListener
that was previously added withaddFlutterEngineAttachmentListener(FlutterEngineAttachmentListener)
.void
removeOnFirstFrameRenderedListener(FlutterUiDisplayListener listener)
Removes the givenlistener
, which was previously added withaddOnFirstFrameRenderedListener(FlutterUiDisplayListener)
.void
revertImageView(Runnable onDone)
If the surface is rendered by aFlutterImageView
, then calling this method will stop rendering to aFlutterImageView
, and render on the previous surface instead.protected void
setWindowInfoListenerDisplayFeatures(androidx.window.layout.WindowLayoutInfo layoutInfo)
RefreshWindowInfoTracker
andDisplayCutout
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 aFlutterView
programmatically, without any XML attributes.- A
FlutterSurfaceView
is used to render the Flutter UI. transparencyMode
defaults toTransparencyMode.opaque
.
FlutterView
requires anActivity
instead of a genericContext
to be compatible withPlatformViewsController
. - A
-
FlutterView
@Deprecated public FlutterView(@NonNull Context context, @NonNull RenderMode renderMode)
Deprecated.Deprecated - useFlutterView(Context, FlutterSurfaceView)
orFlutterView(Context, FlutterTextureView)
orFlutterView(Context, FlutterImageView)
instead.
-
FlutterView
@Deprecated public FlutterView(@NonNull Context context, @NonNull TransparencyMode transparencyMode)
Deprecated.Deprecated - useFlutterView(Context, FlutterSurfaceView)
orFlutterView(Context, FlutterTextureView)
instead, and configure the incomingFlutterSurfaceView
orFlutterTextureView
for transparency as desired.Constructs a
FlutterView
programmatically, without any XML attributes, uses aFlutterSurfaceView
to render the Flutter UI, and allows selection of atransparencyMode
.FlutterView
requires anActivity
instead of a genericContext
to be compatible withPlatformViewsController
.
-
FlutterView
public FlutterView(@NonNull Context context, @NonNull FlutterSurfaceView flutterSurfaceView)
Constructs aFlutterView
programmatically, without any XML attributes, uses the givenFlutterSurfaceView
to render the Flutter UI, and allows selection of atransparencyMode
.FlutterView
requires anActivity
instead of a genericContext
to be compatible withPlatformViewsController
.
-
FlutterView
public FlutterView(@NonNull Context context, @NonNull FlutterTextureView flutterTextureView)
Constructs aFlutterView
programmatically, without any XML attributes, uses the givenFlutterTextureView
to render the Flutter UI, and allows selection of atransparencyMode
.FlutterView
requires anActivity
instead of a genericContext
to be compatible withPlatformViewsController
.
-
FlutterView
public FlutterView(@NonNull Context context, @NonNull FlutterImageView flutterImageView)
Constructs aFlutterView
programmatically, without any XML attributes, uses the givenFlutterImageView
to render the Flutter UI.FlutterView
requires anActivity
instead of a genericContext
to be compatible withPlatformViewsController
.
-
FlutterView
public FlutterView(@NonNull Context context, @Nullable AttributeSet attrs)
Constructs aFlutterView
in an XML-inflation-compliant manner.FlutterView
requires anActivity
instead of a genericContext
to be compatible withPlatformViewsController
.
-
FlutterView
@Deprecated public FlutterView(@NonNull Context context, @NonNull RenderMode renderMode, @NonNull TransparencyMode transparencyMode)
Deprecated.Deprecated - useFlutterView(Context, FlutterSurfaceView)
orFlutterView(Context, FlutterTextureView)
instead, and configure the incomingFlutterSurfaceView
orFlutterTextureView
for transparency as desired.
-
-
Method Detail
-
hasRenderedFirstFrame
public boolean hasRenderedFirstFrame()
Returns true if an attachedFlutterEngine
has rendered at least 1 frame to thisFlutterView
.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.flutterEngineA
is attached to thisFlutterView
: returns falseflutterEngineA
renders its first frame to thisFlutterView
: returns trueflutterEngineA
is detached from thisFlutterView
: returns falseflutterEngineB
is attached to thisFlutterView
: returns falseflutterEngineB
renders its first frame to thisFlutterView
: returns true
-
addOnFirstFrameRenderedListener
public void addOnFirstFrameRenderedListener(@NonNull FlutterUiDisplayListener listener)
Adds the givenlistener
to thisFlutterView
, to be notified upon Flutter's first rendered frame.
-
removeOnFirstFrameRenderedListener
public void removeOnFirstFrameRenderedListener(@NonNull FlutterUiDisplayListener listener)
Removes the givenlistener
, which was previously added withaddOnFirstFrameRenderedListener(FlutterUiDisplayListener)
.
-
onConfigurationChanged
protected void onConfigurationChanged(@NonNull Configuration newConfig)
Sends relevant configuration data from Android to Flutter when the AndroidConfiguration
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 classView
-
onSizeChanged
protected void onSizeChanged(int width, int height, int oldWidth, int oldHeight)
Invoked when thisFlutterView
changes size, including upon initial measure.The initial measure reports an
oldWidth
andoldHeight
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 classView
-
createWindowInfoRepo
protected WindowInfoRepositoryCallbackAdapterWrapper createWindowInfoRepo()
-
onAttachedToWindow
protected void onAttachedToWindow()
Invoked when this is attached to the window.We register for
WindowInfoTracker
updates.- Overrides:
onAttachedToWindow
in classViewGroup
-
onDetachedFromWindow
protected void onDetachedFromWindow()
Invoked when this is detached from the window.We unregister from
WindowInfoTracker
updates.- Overrides:
onDetachedFromWindow
in classViewGroup
-
setWindowInfoListenerDisplayFeatures
protected void setWindowInfoListenerDisplayFeatures(androidx.window.layout.WindowLayoutInfo layoutInfo)
RefreshWindowInfoTracker
andDisplayCutout
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 classView
-
fitSystemWindows
protected boolean fitSystemWindows(@NonNull Rect insets)
Invoked when Android's desired window insets change, i.e., padding.fitSystemWindows
is an earlier version ofonApplyWindowInsets(WindowInsets)
. See that method for more details about how window insets relate to Flutter.- Overrides:
fitSystemWindows
in classView
-
onCreateInputConnection
@Nullable public InputConnection onCreateInputConnection(@NonNull EditorInfo outAttrs)
Creates anInputConnection
to work with aInputMethodManager
.Any
View
that can take focus or process text input must implement this method by returning a non-nullInputConnection
. Flutter may render one or many focusable and text-input widgets, thereforeFlutterView
must support anInputConnection
.The
InputConnection
returned from this method comes from aTextInputPlugin
, which is owned by thisFlutterView
. ATextInputPlugin
exists to encapsulate the nuances of input communication, rather than spread that logic throughout thisFlutterView
.- Overrides:
onCreateInputConnection
in classView
-
checkInputConnectionProxy
public boolean checkInputConnectionProxy(View view)
Allows aView
that is not currently the input connection target to invoke commands on theInputMethodManager
, 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 classView
-
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 givenKeyEvent
, e.g., combine thiskeyCode
with the previouskeyCode
to generate a unicode combined character.- Overrides:
dispatchKeyEvent
in classViewGroup
-
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 classView
-
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 classView
-
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 aView
, or move around within aView
, or moves from over aView
to outside aView
, a correspondingMotionEvent
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 classView
-
getAccessibilityNodeProvider
@Nullable public AccessibilityNodeProvider getAccessibilityNodeProvider()
- Overrides:
getAccessibilityNodeProvider
in classView
-
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 giventype
.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 interfaceio.flutter.plugin.mouse.MouseCursorPlugin.MouseCursorViewDelegate
-
getBinaryMessenger
public BinaryMessenger getBinaryMessenger()
Description copied from interface:KeyboardManager.ViewDelegate
Returns aBinaryMessenger
to send platform messages with.- Specified by:
getBinaryMessenger
in interfaceKeyboardManager.ViewDelegate
-
onTextInputKeyEvent
public boolean onTextInputKeyEvent(@NonNull KeyEvent keyEvent)
Description copied from interface:KeyboardManager.ViewDelegate
Send aKeyEvent
that is not handled by the keyboard responders to the text input system.- Specified by:
onTextInputKeyEvent
in interfaceKeyboardManager.ViewDelegate
- Parameters:
keyEvent
- theKeyEvent
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 aKeyEvent
that is not handled by Flutter back to the platform.- Specified by:
redispatch
in interfaceKeyboardManager.ViewDelegate
-
attachToFlutterEngine
public void attachToFlutterEngine(@NonNull FlutterEngine flutterEngine)
Connects thisFlutterView
to the givenFlutterEngine
.This
FlutterView
will begin rendering the UI painted by the givenFlutterEngine
. ThisFlutterView
will also begin forwarding interaction events from thisFlutterView
to the givenFlutterEngine
, e.g., user touch events, accessibility events, keyboard events, and others.See
detachFromFlutterEngine()
for information on how to detach from aFlutterEngine
.
-
detachFromFlutterEngine
public void detachFromFlutterEngine()
Disconnects thisFlutterView
from a previously attachedFlutterEngine
.This
FlutterView
will clear its UI and stop forwarding all events to the previously-attachedFlutterEngine
. This includes touch events, accessibility events, keyboard events, and others.See
attachToFlutterEngine(FlutterEngine)
for information on how to attach aFlutterEngine
.
-
createImageView
@NonNull public FlutterImageView createImageView()
-
getCurrentImageSurface
public FlutterImageView getCurrentImageSurface()
-
convertToImageView
public void convertToImageView()
Converts the current render surface to aFlutterImageView
if it's not one already. Otherwise, it resizes theFlutterImageView
based on the current view size.
-
revertImageView
public void revertImageView(@NonNull Runnable onDone)
If the surface is rendered by aFlutterImageView
, then calling this method will stop rendering to aFlutterImageView
, 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 thisFlutterView
is currently attached to aFlutterEngine
.
-
getAttachedFlutterEngine
@Nullable public FlutterEngine getAttachedFlutterEngine()
Returns theFlutterEngine
to which thisFlutterView
is currently attached, or null if thisFlutterView
is not currently attached to aFlutterEngine
.
-
addFlutterEngineAttachmentListener
public void addFlutterEngineAttachmentListener(@NonNull FlutterView.FlutterEngineAttachmentListener listener)
Adds aFlutterView.FlutterEngineAttachmentListener
, which is notified whenever thisFlutterView
attached to/detaches from aFlutterEngine
.
-
removeFlutterEngineAttachmentListener
public void removeFlutterEngineAttachmentListener(@NonNull FlutterView.FlutterEngineAttachmentListener listener)
Removes aFlutterView.FlutterEngineAttachmentListener
that was previously added withaddFlutterEngineAttachmentListener(FlutterEngineAttachmentListener)
.
-
onProvideAutofillVirtualStructure
public void onProvideAutofillVirtualStructure(@NonNull ViewStructure structure, int flags)
- Overrides:
onProvideAutofillVirtualStructure
in classView
-
autofill
public void autofill(@NonNull SparseArray<AutofillValue> values)
-
-