public class FlutterView extends FrameLayout
A FlutterView
's UI is painted by a corresponding FlutterEngine
.
A FlutterView
can operate in 2 different RenderMode
s:
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.
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.LayoutParams
ViewGroup.MarginLayoutParams, ViewGroup.OnHierarchyChangeListener
View.AccessibilityDelegate, View.BaseSavedState, View.DragShadowBuilder, View.MeasureSpec, View.OnAttachStateChangeListener, View.OnClickListener, View.OnCreateContextMenuListener, View.OnDragListener, View.OnFocusChangeListener, View.OnGenericMotionListener, View.OnHoverListener, View.OnKeyListener, View.OnLayoutChangeListener, View.OnLongClickListener, View.OnSystemUiVisibilityChangeListener, View.OnTouchListener
mForegroundInPadding
CLIP_BOUNDS, CLIP_TO_PADDING_MASK, FLAG_DISALLOW_INTERCEPT, FLAG_SUPPORT_STATIC_TRANSFORMATIONS, FLAG_USE_CHILD_DRAWING_ORDER, FOCUS_AFTER_DESCENDANTS, FOCUS_BEFORE_DESCENDANTS, FOCUS_BLOCK_DESCENDANTS, mDisappearingChildren, mGroupFlags, mOnHierarchyChangeListener, mPersistentDrawingCache, OPTICAL_BOUNDS, PERSISTENT_ALL_CACHES, PERSISTENT_ANIMATION_CACHE, PERSISTENT_NO_CACHE, PERSISTENT_SCROLLING_CACHE
ACCESSIBILITY_FOCUS_BACKWARD, ACCESSIBILITY_FOCUS_DOWN, ACCESSIBILITY_FOCUS_FORWARD, ACCESSIBILITY_FOCUS_LEFT, ACCESSIBILITY_FOCUS_RIGHT, ACCESSIBILITY_FOCUS_UP, ACCESSIBILITY_FOCUSABLE_AUTO, ACCESSIBILITY_FOCUSABLE_NO, ACCESSIBILITY_FOCUSABLE_YES, ALPHA, DEBUG_LAYOUT_PROPERTY, DRAG_FLAG_GLOBAL, 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_ACCESSIBILITY_NODE_PROVIDERS, FIND_VIEWS_WITH_CONTENT_DESCRIPTION, FIND_VIEWS_WITH_TEXT, FOCUS_ACCESSIBILITY, FOCUS_BACKWARD, FOCUS_DOWN, FOCUS_FORWARD, FOCUS_LEFT, FOCUS_RIGHT, FOCUS_UP, FOCUSABLES_ACCESSIBILITY, 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_YES, 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, mBottom, mCachingFailed, mContext, mCurrentAnimation, MEASURED_HEIGHT_STATE_SHIFT, MEASURED_SIZE_MASK, MEASURED_STATE_MASK, MEASURED_STATE_TOO_SMALL, mInputEventConsistencyVerifier, mLayoutParams, mLeft, mPaddingBottom, mPaddingLeft, mPaddingRight, mPaddingTop, mParent, mRight, mScrollX, mScrollY, mTag, mTop, mUserPaddingBottom, mUserPaddingLeft, mUserPaddingRight, NO_ID, 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, PUBLIC_STATUS_BAR_VISIBILITY_MASK, ROTATION, ROTATION_X, ROTATION_Y, SCALE_X, SCALE_Y, SCREEN_STATE_OFF, SCREEN_STATE_ON, 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_DISABLE_BACK, STATUS_BAR_DISABLE_CLOCK, STATUS_BAR_DISABLE_EXPAND, STATUS_BAR_DISABLE_HOME, STATUS_BAR_DISABLE_NOTIFICATION_ALERTS, STATUS_BAR_DISABLE_NOTIFICATION_ICONS, STATUS_BAR_DISABLE_NOTIFICATION_TICKER, STATUS_BAR_DISABLE_RECENT, STATUS_BAR_DISABLE_SYSTEM_INFO, STATUS_BAR_HIDDEN, STATUS_BAR_VISIBLE, SYSTEM_UI_CLEARABLE_FLAGS, SYSTEM_UI_FLAG_FULLSCREEN, SYSTEM_UI_FLAG_HIDE_NAVIGATION, SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN, SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION, SYSTEM_UI_FLAG_LAYOUT_STABLE, SYSTEM_UI_FLAG_LOW_PROFILE, SYSTEM_UI_FLAG_VISIBLE, SYSTEM_UI_LAYOUT_FLAGS, TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_DEFAULT, TEXT_ALIGNMENT_GRAVITY, TEXT_ALIGNMENT_INHERIT, TEXT_ALIGNMENT_RESOLVED_DEFAULT, TEXT_ALIGNMENT_TEXT_END, TEXT_ALIGNMENT_TEXT_START, TEXT_ALIGNMENT_VIEW_END, TEXT_ALIGNMENT_VIEW_START, TEXT_DIRECTION_ANY_RTL, TEXT_DIRECTION_DEFAULT, TEXT_DIRECTION_FIRST_STRONG, TEXT_DIRECTION_INHERIT, TEXT_DIRECTION_LOCALE, TEXT_DIRECTION_LTR, TEXT_DIRECTION_RTL, TRANSLATION_X, TRANSLATION_Y, VIEW_LOG_TAG, VISIBLE, WINDOW_FOCUSED_STATE_SET, X, Y
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,
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 |
---|---|
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, draw, drawableStateChanged, gatherTransparentRegion, generateDefaultLayoutParams, generateLayoutParams, generateLayoutParams, getConsiderGoneChildrenWhenMeasuring, getForeground, getForegroundGravity, getMeasureAllChildren, jumpDrawablesToCurrentState, onInitializeAccessibilityEvent, onInitializeAccessibilityNodeInfo, onLayout, onMeasure, setForeground, setForegroundGravity, setMeasureAllChildren, shouldDelayChildPressedState, verifyDrawable
addChildrenForAccessibility, addFocusables, addStatesFromChildren, addTouchables, addView, addView, addView, addView, addView, addViewInLayout, addViewInLayout, attachLayoutAnimationParameters, attachViewToParent, bringChildToFront, canAnimate, childAccessibilityStateChanged, childDrawableStateChanged, childHasTransientStateChanged, cleanupLayoutState, clearChildFocus, clearDisappearingChildren, clearFocus, debug, detachAllViewsFromParent, detachViewFromParent, detachViewFromParent, detachViewsFromParent, dispatchConfigurationChanged, dispatchDisplayHint, dispatchDragEvent, dispatchDraw, dispatchFinishTemporaryDetach, dispatchFreezeSelfOnly, dispatchGenericFocusedEvent, dispatchGenericPointerEvent, dispatchGetDisplayList, dispatchHoverEvent, dispatchKeyEvent, dispatchKeyEventPreIme, dispatchKeyShortcutEvent, dispatchRestoreInstanceState, dispatchSaveInstanceState, dispatchSetActivated, dispatchSetPressed, dispatchSetSelected, dispatchStartTemporaryDetach, dispatchSystemUiVisibilityChanged, dispatchThawSelfOnly, dispatchTouchEvent, dispatchTrackballEvent, dispatchUnhandledMove, dispatchVisibilityChanged, dispatchWindowFocusChanged, dispatchWindowSystemUiVisiblityChanged, dispatchWindowVisibilityChanged, drawChild, endViewTransition, findFocus, findViewByPredicateTraversal, findViewsWithText, findViewToTakeAccessibilityFocusFromHover, findViewTraversal, findViewWithTagTraversal, focusableViewAvailable, focusSearch, getChildAt, getChildCount, getChildDrawingOrder, getChildMeasureSpec, getChildStaticTransformation, getChildVisibleRect, getDescendantFocusability, getFocusedChild, getLayoutAnimation, getLayoutAnimationListener, getLayoutMode, getLayoutTransition, getPersistentDrawingCache, hasFocus, hasFocusable, hasHoveredChild, hasTransientState, indexOfChild, invalidateChild, invalidateChildFast, invalidateChildInParent, isAlwaysDrawnWithCacheEnabled, isAnimationCacheEnabled, isChildrenDrawingOrderEnabled, isChildrenDrawnWithCacheEnabled, isMotionEventSplittingEnabled, isTransformedTouchPointInView, layout, makeOptionalFitsSystemWindows, measureChild, measureChildren, measureChildWithMargins, offsetChildrenTopAndBottom, offsetDescendantRectToMyCoords, offsetRectIntoDescendantCoords, onAnimationEnd, onAnimationStart, onChildVisibilityChanged, onCreateDrawableState, onDebugDraw, onDebugDrawMargins, onInterceptHoverEvent, onInterceptTouchEvent, onRequestFocusInDescendants, onRequestSendAccessibilityEvent, onResolvedLayoutDirectionReset, onResolvedTextAlignmentReset, onResolvedTextDirectionReset, onSetLayoutParams, onViewAdded, onViewRemoved, recomputeViewAttributes, removeAllViews, removeAllViewsInLayout, removeDetachedView, removeView, removeViewAt, removeViewInLayout, removeViews, removeViewsInLayout, requestChildFocus, requestChildRectangleOnScreen, requestDisallowInterceptTouchEvent, requestFocus, requestSendAccessibilityEvent, requestTransitionStart, requestTransparentRegion, resetAccessibilityStateChanged, scheduleLayoutAnimation, setAddStatesFromChildren, setAlwaysDrawnWithCacheEnabled, setAnimationCacheEnabled, setChildrenDrawingCacheEnabled, setChildrenDrawingOrderEnabled, setChildrenDrawnWithCacheEnabled, setChildrenLayersEnabled, setClipChildren, setClipToPadding, setDescendantFocusability, setLayoutAnimation, setLayoutAnimationListener, setLayoutMode, setLayoutTransition, setMotionEventSplittingEnabled, setOnHierarchyChangeListener, setPadding, setPersistentDrawingCache, setStaticTransformationsEnabled, showContextMenuForChild, startActionModeForChild, startLayoutAnimation, startViewTransition, updateViewLayout
addFocusables, addOnAttachStateChangeListener, addOnLayoutChangeListener, animate, announceForAccessibility, applyDrawableToTransparentRegion, awakenScrollBars, awakenScrollBars, awakenScrollBars, bringToFront, buildDrawingCache, buildDrawingCache, buildLayer, callOnClick, cancelLongPress, canHaveDisplayList, canResolveLayoutDirection, canResolveTextAlignment, canResolveTextDirection, canScrollHorizontally, canScrollVertically, clearAccessibilityFocus, clearAnimation, combineMeasuredStates, computeHorizontalScrollExtent, computeHorizontalScrollOffset, computeHorizontalScrollRange, computeOpaqueFlags, computeScroll, computeVerticalScrollExtent, computeVerticalScrollOffset, computeVerticalScrollRange, createAccessibilityNodeInfo, createContextMenu, debug, debugIndent, destroyDrawingCache, destroyHardwareResources, dispatchGenericMotionEvent, dispatchPointerEvent, dispatchPopulateAccessibilityEvent, findViewById, findViewByPredicate, findViewByPredicateInsideOut, findViewWithTag, fitsSystemWindows, focusSearch, forceLayout, getAccessibilityCursorPosition, getAccessibilityFocusable, getAccessibilityViewId, getAccessibilityWindowId, getActualAndReportedWindowLeftDelta, getActualAndReportedWindowTopDelta, getAlpha, getAnimation, getApplicationWindowToken, getBackground, getBaseline, getBottom, getBottomFadingEdgeStrength, getBottomPaddingOffset, getCameraDistance, getContentDescription, getContext, getContextMenuInfo, getDefaultSize, getDisplayList, getDrawableState, getDrawingCache, getDrawingCache, getDrawingCacheBackgroundColor, getDrawingCacheQuality, getDrawingRect, getDrawingTime, getFadeHeight, getFadeTop, getFilterTouchesWhenObscured, getFitsSystemWindows, getFocusables, getFocusedRect, getGlobalVisibleRect, getGlobalVisibleRect, getHandler, getHardwareRenderer, getHeight, getHitRect, getHorizontalFadingEdgeLength, getHorizontalScrollbarHeight, getHorizontalScrollFactor, getId, getImportantForAccessibility, getIterableTextForAccessibility, getIteratorForGranularity, getKeepScreenOn, getKeyDispatcherState, getLayerType, getLayoutDirection, getLayoutParams, getLeft, getLeftFadingEdgeStrength, getLeftPaddingOffset, getLocalVisibleRect, getLocationInWindow, getLocationOnScreen, getMatrix, getMeasuredHeight, getMeasuredHeightAndState, getMeasuredState, getMeasuredWidth, getMeasuredWidthAndState, getMinimumHeight, getMinimumWidth, getNextFocusDownId, getNextFocusForwardId, getNextFocusLeftId, getNextFocusRightId, getNextFocusUpId, getOnFocusChangeListener, getOpticalInsets, getOverScrollMode, getPaddingBottom, getPaddingEnd, getPaddingLeft, getPaddingRight, getPaddingStart, getPaddingTop, getParent, getParentForAccessibility, getPivotX, getPivotY, getResolvedLayoutDirection, getResolvedLayoutDirection, getResolvedTextAlignment, getResolvedTextDirection, getResources, getRight, getRightFadingEdgeStrength, getRightPaddingOffset, getRootView, getRotation, getRotationX, getRotationY, getScaleX, getScaleY, getScrollBarDefaultDelayBeforeFade, getScrollBarFadeDuration, getScrollBarSize, getScrollBarStyle, getScrollX, getScrollY, getSolidColor, getSuggestedMinimumHeight, getSuggestedMinimumWidth, getSystemUiVisibility, getTag, getTag, getTextAlignment, getTextDirection, getTop, getTopFadingEdgeStrength, getTopPaddingOffset, getTouchables, getTouchDelegate, getTranslationX, getTranslationY, getVerticalFadingEdgeLength, getVerticalScrollbarPosition, getVerticalScrollbarWidth, getVerticalScrollFactor, getViewRootImpl, getViewTreeObserver, getVisibility, getWidth, getWindowAttachCount, getWindowSystemUiVisibility, getWindowToken, getWindowVisibility, getWindowVisibleDisplayFrame, getX, getY, hackTurnOffWindowResizeAnim, hasOnClickListeners, hasOpaqueScrollbars, hasOverlappingRendering, hasWindowFocus, includeForAccessibility, inflate, initializeFadingEdge, initializeScrollbars, invalidate, invalidate, invalidate, invalidateDrawable, invalidateParentCaches, invalidateParentIfNeeded, isAccessibilityFocusable, isActionableForAccessibility, isActivated, isClickable, isDirty, isDrawingCacheEnabled, isDuplicateParentStateEnabled, isEnabled, isFocusable, isFocusableInTouchMode, isFocused, isHapticFeedbackEnabled, isHardwareAccelerated, isHorizontalFadingEdgeEnabled, isHorizontalScrollBarEnabled, isHovered, isImportantForAccessibility, isInEditMode, isInScrollingContainer, isInTouchMode, isLayoutDirectionRtl, isLayoutRequested, isLayoutRtl, isLongClickable, isOpaque, isPaddingOffsetRequired, isPaddingRelative, isPressed, isRootNamespace, isSaveEnabled, isSaveFromParentEnabled, isScrollbarFadingEnabled, isScrollContainer, isSelected, isShown, isSoundEffectsEnabled, isVerticalFadingEdgeEnabled, isVerticalScrollBarEnabled, isVerticalScrollBarHidden, isVisibleToUser, isVisibleToUser, measure, mergeDrawableStates, notifyAccessibilityStateChanged, offsetLeftAndRight, offsetTopAndBottom, onAttachedToWindow, onCheckIsTextEditor, onCloseSystemDialogs, onCreateContextMenu, onDetachedFromWindow, onDisplayHint, onDragEvent, onDraw, onDrawHorizontalScrollBar, onDrawScrollBars, onDrawVerticalScrollBar, onFilterTouchEventForSecurity, onFinishInflate, onFinishTemporaryDetach, onFocusChanged, onFocusLost, onHoverChanged, onKeyLongPress, onKeyMultiple, onKeyPreIme, onKeyShortcut, onOverScrolled, onPaddingChanged, onPopulateAccessibilityEvent, onResolvedLayoutDirectionChanged, onResolvedTextAlignmentChanged, onResolvedTextDirectionChanged, onRestoreInstanceState, onSaveInstanceState, onScreenStateChanged, onScrollChanged, onSetAlpha, onStartTemporaryDetach, onTrackballEvent, onVisibilityChanged, onWindowFocusChanged, onWindowSystemUiVisibilityChanged, onWindowVisibilityChanged, outputDirtyFlags, overScrollBy, performAccessibilityAction, performButtonActionOnTouchDown, performClick, performHapticFeedback, performHapticFeedback, performLongClick, playSoundEffect, post, postDelayed, postInvalidate, postInvalidate, postInvalidateDelayed, postInvalidateDelayed, postInvalidateOnAnimation, postInvalidateOnAnimation, postOnAnimation, postOnAnimationDelayed, recomputePadding, refreshDrawableState, removeCallbacks, removeOnAttachStateChangeListener, removeOnLayoutChangeListener, requestAccessibilityFocus, requestFitSystemWindows, requestFocus, requestFocus, requestFocusFromTouch, requestLayout, requestRectangleOnScreen, requestRectangleOnScreen, resetResolvedLayoutDirection, resetResolvedTextAlignment, resetResolvedTextDirection, resolveLayoutDirection, resolvePadding, resolveSize, resolveSizeAndState, resolveTextAlignment, resolveTextDirection, restoreHierarchyState, saveHierarchyState, scheduleDrawable, scrollBy, scrollTo, sendAccessibilityEvent, sendAccessibilityEventUnchecked, setAccessibilityCursorPosition, setAccessibilityDelegate, setAccessibilityFocusable, setActivated, setAlpha, setAnimation, setBackground, setBackgroundColor, setBackgroundDrawable, setBackgroundResource, setBottom, setCameraDistance, setClickable, setContentDescription, setDisabledSystemUiVisibility, setDrawingCacheBackgroundColor, setDrawingCacheEnabled, setDrawingCacheQuality, setDuplicateParentStateEnabled, setEnabled, setFadingEdgeLength, setFilterTouchesWhenObscured, setFitsSystemWindows, setFocusable, setFocusableInTouchMode, setFrame, setHapticFeedbackEnabled, setHasTransientState, setHorizontalFadingEdgeEnabled, setHorizontalScrollBarEnabled, setHovered, setId, setImportantForAccessibility, setIsRootNamespace, setKeepScreenOn, setLayerType, setLayoutDirection, setLayoutInsets, setLayoutParams, setLeft, setLongClickable, setMeasuredDimension, setMinimumHeight, setMinimumWidth, setNextFocusDownId, setNextFocusForwardId, setNextFocusLeftId, setNextFocusRightId, setNextFocusUpId, setOnClickListener, setOnCreateContextMenuListener, setOnDragListener, setOnFocusChangeListener, setOnGenericMotionListener, setOnHoverListener, setOnKeyListener, setOnLongClickListener, setOnSystemUiVisibilityChangeListener, setOnTouchListener, setOverScrollMode, setPaddingRelative, setPivotX, setPivotY, setPressed, setRight, setRotation, setRotationX, setRotationY, setSaveEnabled, setSaveFromParentEnabled, setScaleX, setScaleY, setScrollBarDefaultDelayBeforeFade, setScrollBarFadeDuration, setScrollbarFadingEnabled, setScrollBarSize, setScrollBarStyle, setScrollContainer, setScrollX, setScrollY, setSelected, setSoundEffectsEnabled, setSystemUiVisibility, setTag, setTag, setTagInternal, setTextAlignment, setTextDirection, setTop, setTouchDelegate, setTranslationX, setTranslationY, setVerticalFadingEdgeEnabled, setVerticalScrollBarEnabled, setVerticalScrollbarPosition, setVisibility, setWillNotCacheDrawing, setWillNotDraw, setX, setY, showContextMenu, showContextMenu, startActionMode, startAnimation, startDrag, unscheduleDrawable, unscheduleDrawable, willNotCacheDrawing, willNotDraw
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
createContextMenu, getParent, getParentForAccessibility, isLayoutRequested, requestFitSystemWindows, requestLayout
public 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)
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, @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 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 FrameLayout
@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.
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 ViewGroup
@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)
This method is typically invoked in response to the release 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. 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)
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. 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)
Flutter handles all of its own gesture detection and processing, therefore this method
forwards all MotionEvent
data from Android to Flutter.
onTouchEvent
in class View
public 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 View
public 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 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)
.