public class FlutterView extends FrameLayout
A FlutterView
's UI is painted by a corresponding FlutterEngine
.
A FlutterView
can operate in 2 different FlutterView.RenderMode
s:
FlutterView.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.FlutterView.RenderMode.texture
, which paints a Flutter UI to a SurfaceTexture
.
This mode is not as performant as FlutterView.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 FlutterView.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
Render modes for a
FlutterView . |
static class |
FlutterView.TransparencyMode
Transparency mode for a
FlutterView . |
FrameLayout.LayoutParams
ViewGroup.MarginLayoutParams, ViewGroup.OnHierarchyChangeListener
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
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
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_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, 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
FlutterSurfaceView in an XML-inflation-compliant manner. |
FlutterView(Context context,
FlutterView.RenderMode renderMode)
Constructs a
FlutterView programmatically, without any XML attributes,
and allows selection of a renderMode . |
FlutterView(Context context,
FlutterView.RenderMode renderMode,
FlutterView.TransparencyMode transparencyMode)
Constructs a
FlutterView programmatically, without any XML attributes, and allows
a selection of renderMode and transparencyMode . |
FlutterView(Context context,
FlutterView.TransparencyMode transparencyMode)
Constructs a
FlutterView programmatically, without any XML attributes,
assumes the use of FlutterView.RenderMode.surface , and allows selection of a transparencyMode . |
Modifier and Type | Method and Description |
---|---|
void |
addFlutterEngineAttachmentListener(FlutterView.FlutterEngineAttachmentListener listener)
Adds a
FlutterView.FlutterEngineAttachmentListener , which is notifed 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 |
attachToFlutterEngine(FlutterEngine flutterEngine)
Connects this
FlutterView to the given FlutterEngine . |
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 |
detachFromFlutterEngine()
Disconnects this
FlutterView from a previously attached FlutterEngine . |
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 . |
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.
|
boolean |
onKeyDown(int keyCode,
KeyEvent event)
Invoked when key is pressed.
|
boolean |
onKeyUp(int keyCode,
KeyEvent event)
Invoked when key is released.
|
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) . |
checkLayoutParams, generateDefaultLayoutParams, generateLayoutParams, generateLayoutParams, getAccessibilityClassName, getConsiderGoneChildrenWhenMeasuring, getMeasureAllChildren, onLayout, onMeasure, setForegroundGravity, setMeasureAllChildren, shouldDelayChildPressedState
addChildrenForAccessibility, 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, dispatchKeyEvent, dispatchKeyEventPreIme, dispatchKeyShortcutEvent, dispatchPointerCaptureChanged, dispatchProvideAutofillStructure, dispatchProvideStructure, dispatchRestoreInstanceState, dispatchSaveInstanceState, dispatchSetActivated, dispatchSetPressed, dispatchSetSelected, dispatchStartTemporaryDetach, dispatchSystemUiVisibilityChanged, dispatchThawSelfOnly, dispatchTouchEvent, dispatchTrackballEvent, dispatchUnhandledMove, dispatchVisibilityChanged, dispatchWindowFocusChanged, 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, showContextMenuForChild, showContextMenuForChild, startActionModeForChild, startActionModeForChild, startLayoutAnimation, startViewTransition, suppressLayout, updateViewLayout
addExtraDataToAccessibilityNodeInfo, addFocusables, addOnAttachStateChangeListener, addOnLayoutChangeListener, addOnUnhandledKeyEventListener, animate, announceForAccessibility, autofill, 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, 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, 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, getWindowSystemUiVisibility, getWindowToken, getWindowVisibility, getWindowVisibleDisplayFrame, getX, getY, getZ, hasExplicitFocusable, hasFocusable, hasNestedScrollingParent, hasOnClickListeners, 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, isInEditMode, isInLayout, isInTouchMode, isKeyboardNavigationCluster, isLaidOut, isLayoutDirectionResolved, isLayoutRequested, isLongClickable, isNestedScrollingEnabled, isOpaque, isPaddingOffsetRequired, isPaddingRelative, isPivotSet, isPressed, isSaveEnabled, isSaveFromParentEnabled, isScreenReaderFocusable, isScrollbarFadingEnabled, isScrollContainer, isSelected, 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, onKeyLongPress, onKeyMultiple, onKeyPreIme, onKeyShortcut, onOverScrolled, onPointerCaptureChange, onPopulateAccessibilityEvent, onProvideAutofillStructure, onProvideAutofillVirtualStructure, 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, 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, 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, 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, willNotDraw
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, createContextMenu, getLayoutDirection, getParent, getParentForAccessibility, getTextAlignment, getTextDirection, isLayoutDirectionResolved, isLayoutRequested, isTextAlignmentResolved, isTextDirectionResolved, keyboardNavigationClusterSearch, requestFitSystemWindows, requestLayout
public FlutterView(@NonNull Context context)
FlutterView
programmatically, without any XML attributes.
renderMode
defaults to FlutterView.RenderMode.surface
.transparencyMode
defaults to FlutterView.TransparencyMode.opaque
.FlutterView
requires an Activity
instead of a generic Context
to be compatible with PlatformViewsController
.public FlutterView(@NonNull Context context, @NonNull FlutterView.RenderMode renderMode)
FlutterView
programmatically, without any XML attributes,
and allows selection of a renderMode
.
transparencyMode
defaults to FlutterView.TransparencyMode.opaque
.
FlutterView
requires an Activity
instead of a generic Context
to be compatible with PlatformViewsController
.
public FlutterView(@NonNull Context context, @NonNull FlutterView.TransparencyMode transparencyMode)
FlutterView
programmatically, without any XML attributes,
assumes the use of FlutterView.RenderMode.surface
, 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 FlutterView.RenderMode renderMode, @NonNull FlutterView.TransparencyMode transparencyMode)
FlutterView
programmatically, without any XML attributes, and allows
a selection of renderMode
and transparencyMode
.
FlutterView
requires an Activity
instead of a generic Context
to be compatible with PlatformViewsController
.
public FlutterView(@NonNull Context context, @Nullable AttributeSet attrs)
FlutterSurfaceView
in an XML-inflation-compliant manner.
FlutterView
requires an Activity
instead of a generic Context
to be compatible with PlatformViewsController
.
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 falseflutterEngineA
renders its first frame to this FlutterView
: returns trueflutterEngineA
is detached from this FlutterView
: returns falseflutterEngineB
is attached to this FlutterView
: returns falseflutterEngineB
renders its first frame to this FlutterView
: returns truepublic 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 View
protected 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)
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 View
protected 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 View
public 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 View
public boolean onKeyUp(int keyCode, @NonNull KeyEvent event)
KeyEvent
s are sent from Android to Flutter. AndroidKeyProcessor
may do some additional work with the given KeyEvent
, e.g., combine this
keyCode
with the previous keyCode
to generate a unicode combined
character.onKeyUp
in interface KeyEvent.Callback
onKeyUp
in class View
public boolean onKeyDown(int keyCode, @NonNull KeyEvent event)
KeyEvent
s are sent from Android to Flutter. AndroidKeyProcessor
may do some additional work with the given KeyEvent
, e.g., combine this
keyCode
with the previous keyCode
to generate a unicode combined
character.onKeyDown
in interface KeyEvent.Callback
onKeyDown
in class View
public boolean onTouchEvent(@NonNull MotionEvent event)
MotionEvent
data from Android to Flutter.onTouchEvent
in class View
public boolean onGenericMotionEvent(@NonNull MotionEvent event)
MotionEvent
data from Android to Flutter.onGenericMotionEvent
in class View
public boolean onHoverEvent(@NonNull MotionEvent event)
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 View
public 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
.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 notifed 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)
.