public class FlutterView extends FrameLayout implements io.flutter.plugin.mouse.MouseCursorPlugin.MouseCursorViewDelegate
A FlutterView's UI is painted by a corresponding FlutterEngine.
A FlutterView can operate in 2 different RenderModes:
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 Views 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.
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.
SurfaceView and TextureView.| Modifier and Type | Class and Description |
|---|---|
static interface |
FlutterView.FlutterEngineAttachmentListener
Listener that is notified when a
FlutterEngine is attached
to/detached from a given FlutterView. |
static class |
FlutterView.RenderMode
Deprecated.
|
static class |
FlutterView.TransparencyMode
Deprecated.
|
FrameLayout.LayoutParamsViewGroup.MarginLayoutParams, ViewGroup.OnHierarchyChangeListenerView.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.OnUnhandledKeyEventListenerCLIP_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_CACHEACCESSIBILITY_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_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_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 and 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,
FlutterView.RenderMode renderMode)
Deprecated.
|
FlutterView(Context context,
FlutterView.RenderMode renderMode,
FlutterView.TransparencyMode transparencyMode)
Deprecated.
|
FlutterView(Context context,
FlutterView.TransparencyMode transparencyMode)
Deprecated.
|
| Modifier and Type | Method and 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() |
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. |
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 |
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. |
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 |
onTouchEvent(MotionEvent event)
Invoked by Android when a user touch event occurs.
|
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. |
checkLayoutParams, generateDefaultLayoutParams, generateLayoutParams, generateLayoutParams, getAccessibilityClassName, getConsiderGoneChildrenWhenMeasuring, getMeasureAllChildren, onLayout, onMeasure, setForegroundGravity, setMeasureAllChildren, shouldDelayChildPressedStateaddChildrenForAccessibility, 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, dispatchDisplayHint, dispatchDragEvent, dispatchDraw, dispatchDrawableHotspotChanged, dispatchFinishTemporaryDetach, dispatchFreezeSelfOnly, dispatchGenericFocusedEvent, dispatchGenericPointerEvent, dispatchHoverEvent, dispatchKeyEventPreIme, dispatchKeyShortcutEvent, dispatchPointerCaptureChanged, dispatchProvideAutofillStructure, dispatchProvideStructure, dispatchRestoreInstanceState, dispatchSaveInstanceState, 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, onAttachedToWindow, onCreateDrawableState, onDescendantInvalidated, onDetachedFromWindow, 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, updateViewLayoutaddFocusables, addOnAttachStateChangeListener, addOnLayoutChangeListener, addOnUnhandledKeyEventListener, animate, announceForAccessibility, autofill, awakenScrollBars, awakenScrollBars, awakenScrollBars, bringToFront, buildDrawingCache, buildDrawingCache, buildLayer, callOnClick, cancelDragAndDrop, cancelLongPress, cancelPendingInputEvents, canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, canScrollHorizontally, canScrollVertically, clearAnimation, 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, 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, getResources, getRevealOnFocusHint, getRight, getRightFadingEdgeStrength, getRightPaddingOffset, getRootView, getRootWindowInsets, getRotation, getRotationX, getRotationY, getScaleX, getScaleY, getScrollBarDefaultDelayBeforeFade, getScrollBarFadeDuration, getScrollBarSize, getScrollBarStyle, 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, 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, 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, onRestoreInstanceState, onRtlPropertiesChanged, onSaveInstanceState, onScreenStateChanged, onScrollChanged, onSetAlpha, onStartTemporaryDetach, onTrackballEvent, onVisibilityAggregated, onVisibilityChanged, onWindowFocusChanged, onWindowSystemUiVisibilityChanged, onWindowVisibilityChanged, overScrollBy, performAccessibilityAction, performClick, performContextClick, performContextClick, performHapticFeedback, performHapticFeedback, performLongClick, performLongClick, 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, 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, setOnScrollChangeListener, setOnSystemUiVisibilityChangeListener, setOnTouchListener, setOutlineAmbientShadowColor, setOutlineProvider, setOutlineSpotShadowColor, setOverScrollMode, setPadding, setPaddingRelative, setPivotX, setPivotY, setPointerIcon, setPressed, setRevealOnFocusHint, setRight, setRotation, setRotationX, setRotationY, setSaveEnabled, setSaveFromParentEnabled, setScaleX, setScaleY, setScreenReaderFocusable, setScrollBarDefaultDelayBeforeFade, setScrollBarFadeDuration, setScrollbarFadingEnabled, setScrollBarSize, setScrollBarStyle, 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, setVisibility, setWillNotCacheDrawing, setWillNotDraw, setX, setY, setZ, showContextMenu, showContextMenu, startActionMode, startActionMode, startAnimation, startDrag, startDragAndDrop, startNestedScroll, stopNestedScroll, toString, transformMatrixToGlobal, transformMatrixToLocal, unscheduleDrawable, unscheduleDrawable, updateDragShadow, verifyDrawable, willNotCacheDrawing, willNotDrawclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitsetPointerIconcanResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, createContextMenu, getLayoutDirection, getParent, getParentForAccessibility, getTextAlignment, getTextDirection, isLayoutDirectionResolved, isLayoutRequested, isTextAlignmentResolved, isTextDirectionResolved, keyboardNavigationClusterSearch, requestFitSystemWindows, requestLayoutpublic FlutterView(@NonNull
Context context)
FlutterView programmatically, without any XML attributes.
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.@Deprecated public FlutterView(@NonNull Context context, @NonNull FlutterView.RenderMode renderMode)
FlutterView(Context, FlutterSurfaceView) or FlutterView(Context, FlutterTextureView) or FlutterView(Context, FlutterImageView)
instead.@Deprecated public FlutterView(@NonNull Context context, @NonNull FlutterView.TransparencyMode transparencyMode)
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.
public FlutterView(@NonNull
Context context,
@NonNull
FlutterSurfaceView flutterSurfaceView)
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.
public FlutterView(@NonNull
Context context,
@NonNull
FlutterTextureView flutterTextureView)
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.
public FlutterView(@NonNull
Context context,
@NonNull
FlutterImageView flutterImageView)
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.
public FlutterView(@NonNull
Context context,
@Nullable
AttributeSet attrs)
FlutterView in an XML-inflation-compliant manner.
FlutterView requires an Activity instead of a generic Context to be
compatible with PlatformViewsController.
@Deprecated public FlutterView(@NonNull Context context, @NonNull FlutterView.RenderMode renderMode, @NonNull FlutterView.TransparencyMode transparencyMode)
FlutterView(Context, FlutterSurfaceView) or FlutterView(Context, FlutterTextureView) instead, and configure the incoming FlutterSurfaceView or FlutterTextureView for transparency as desired.public boolean hasRenderedFirstFrame()
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.
flutterEngineA is attached to this FlutterView: returns false
flutterEngineA renders its first frame to this FlutterView: returns true
flutterEngineA is detached from this FlutterView: returns false
flutterEngineB is attached to this FlutterView: returns false
flutterEngineB renders its first frame to this FlutterView: returns true
public void addOnFirstFrameRenderedListener(@NonNull
FlutterUiDisplayListener listener)
listener to this FlutterView, to be notified upon Flutter's
first rendered frame.public void removeOnFirstFrameRenderedListener(@NonNull
FlutterUiDisplayListener listener)
listener, which was previously added with addOnFirstFrameRenderedListener(FlutterUiDisplayListener).protected void onConfigurationChanged(@NonNull
Configuration newConfig)
Configuration changes.
The Android Configuration might change as a result of device orientation change,
device language change, device text scale factor change, etc.
onConfigurationChanged in class Viewprotected void onSizeChanged(int width,
int height,
int oldWidth,
int oldHeight)
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.
onSizeChanged in class View@NonNull public final WindowInsets onApplyWindowInsets(@NonNull WindowInsets insets)
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.
onApplyWindowInsets in class Viewprotected boolean fitSystemWindows(@NonNull
Rect insets)
fitSystemWindows is an earlier version of onApplyWindowInsets(WindowInsets). See that method for more details about how window insets
relate to Flutter.
fitSystemWindows in class View@Nullable public InputConnection onCreateInputConnection(@NonNull EditorInfo outAttrs)
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.
onCreateInputConnection in class Viewpublic boolean checkInputConnectionProxy(View view)
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.
checkInputConnectionProxy in class Viewpublic boolean dispatchKeyEvent(KeyEvent event)
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.
KeyEvents 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.
dispatchKeyEvent in class ViewGrouppublic boolean onTouchEvent(@NonNull
MotionEvent event)
Flutter handles all of its own gesture detection and processing, therefore this method
forwards all MotionEvent data from Android to Flutter.
onTouchEvent in class Viewpublic boolean onGenericMotionEvent(@NonNull
MotionEvent event)
Flutter handles all of its own gesture detection and processing, therefore this method
forwards all MotionEvent data from Android to Flutter.
onGenericMotionEvent in class Viewpublic boolean onHoverEvent(@NonNull
MotionEvent 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.
onHoverEvent in class View@Nullable public AccessibilityNodeProvider getAccessibilityNodeProvider()
getAccessibilityNodeProvider in class Viewpublic View findViewByAccessibilityIdTraversal(int accessibilityId)
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.
accessibilityId - The view accessibility id.@NonNull public PointerIcon getSystemPointerIcon(int type)
io.flutter.plugin.mouse.MouseCursorPlugin.MouseCursorViewDelegatetype.
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.
getSystemPointerIcon in interface io.flutter.plugin.mouse.MouseCursorPlugin.MouseCursorViewDelegatepublic void attachToFlutterEngine(@NonNull
FlutterEngine flutterEngine)
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.
public void detachFromFlutterEngine()
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.
@NonNull public FlutterImageView createImageView()
public void convertToImageView()
FlutterImageView if it's not one already.
Otherwise, it resizes the FlutterImageView based on the current view size.public void revertImageView(@NonNull
Runnable onDone)
FlutterImageView, then calling this method will stop
rendering to a FlutterImageView, and render on the previous surface instead.onDone - a callback called when Flutter UI is rendered on the previous surface. Use this
callback to perform cleanups. For example, destroy overlay surfaces.public void attachOverlaySurfaceToRender(FlutterImageView view)
public boolean acquireLatestImageViewFrame()
public boolean isAttachedToFlutterEngine()
FlutterView is currently attached to a FlutterEngine.@Nullable public FlutterEngine getAttachedFlutterEngine()
FlutterEngine to which this FlutterView
is currently attached, or null if this FlutterView is not currently attached to a
FlutterEngine.public void addFlutterEngineAttachmentListener(@NonNull
FlutterView.FlutterEngineAttachmentListener listener)
FlutterView.FlutterEngineAttachmentListener, which is notified whenever this FlutterView attached to/detaches from a FlutterEngine.public void removeFlutterEngineAttachmentListener(@NonNull
FlutterView.FlutterEngineAttachmentListener listener)
FlutterView.FlutterEngineAttachmentListener that was previously added with addFlutterEngineAttachmentListener(FlutterEngineAttachmentListener).public void onProvideAutofillVirtualStructure(ViewStructure structure, int flags)
onProvideAutofillVirtualStructure in class Viewpublic void autofill(SparseArray<AutofillValue> values)