Class FlutterFragment
- java.lang.Object
-
- androidx.fragment.app.Fragment
-
- io.flutter.embedding.android.FlutterFragment
-
- All Implemented Interfaces:
ComponentCallbacks
,ComponentCallbacks2
,View.OnCreateContextMenuListener
,androidx.lifecycle.LifecycleOwner
,androidx.lifecycle.ViewModelStoreOwner
,androidx.savedstate.SavedStateRegistryOwner
,io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.DelegateFactory
,FlutterEngineConfigurator
,FlutterEngineProvider
,SplashScreenProvider
,PlatformPlugin.PlatformPluginDelegate
public class FlutterFragment extends androidx.fragment.app.Fragment implements ComponentCallbacks2, io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.DelegateFactory
Fragment
which displays a Flutter UI that takes up all availableFragment
space.Using a
FlutterFragment
requires forwarding a number of calls from anActivity
to ensure that the internal Flutter app behaves as expected:onPostResume()
onBackPressed()
onRequestPermissionsResult(int, String[], int[])
onNewIntent(Intent)
onUserLeaveHint()
onBackPressed()
does not need to be called through if the fragment is constructed by one of the builders withshouldAutomaticallyHandleOnBackPressed(true)
.Additionally, when starting an
Activity
for a result from thisFragment
, be sure to invokeFragment.startActivityForResult(Intent, int)
rather thanActivity.startActivityForResult(Intent, int)
. If theActivity
version of the method is invoked then thisFragment
will never receive itsFragment.onActivityResult(int, int, Intent)
callback.If convenient, consider using a
FlutterActivity
instead of aFlutterFragment
to avoid the work of forwarding calls.FlutterFragment
supports the use of an existing, cachedFlutterEngine
. To use a cachedFlutterEngine
, ensure that theFlutterEngine
is stored inFlutterEngineCache
and then usewithCachedEngine(String)
to build aFlutterFragment
with the cachedFlutterEngine
's ID.It is generally recommended to use a cached
FlutterEngine
to avoid a momentary delay when initializing a newFlutterEngine
. The two exceptions to using a cachedFlutterEngine
are:- When
FlutterFragment
is in the firstActivity
displayed by the app, because pre-warming aFlutterEngine
would have no impact in this situation. - When you are unsure when/if you will need to display a Flutter experience.
The following illustrates how to pre-warm and cache a
FlutterEngine
:// Create and pre-warm a FlutterEngine. FlutterEngine flutterEngine = new FlutterEngine(context); flutterEngine .getDartExecutor() .executeDartEntrypoint(DartEntrypoint.createDefault()); // Cache the pre-warmed FlutterEngine in the FlutterEngineCache. FlutterEngineCache.getInstance().put("my_engine", flutterEngine);
If Flutter is needed in a location that can only use a
View
, consider using aFlutterView
. Using aFlutterView
requires forwarding some calls from anActivity
, as well as forwarding lifecycle calls from anActivity
or aFragment
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
FlutterFragment.CachedEngineFragmentBuilder
Builder that creates a newFlutterFragment
that uses a cachedFlutterEngine
witharguments
that correspond to the values set on thisBuilder
.static class
FlutterFragment.NewEngineFragmentBuilder
Builder that creates a newFlutterFragment
witharguments
that correspond to the values set on thisNewEngineFragmentBuilder
.
-
Field Summary
Fields Modifier and Type Field Description protected static String
ARG_APP_BUNDLE_PATH
Path to Flutter's Dart code.protected static String
ARG_CACHED_ENGINE_ID
The ID of aFlutterEngine
cached inFlutterEngineCache
that will be used within the createdFlutterFragment
.protected static String
ARG_DART_ENTRYPOINT
The Dart entrypoint method name that is executed upon initialization.protected static String
ARG_DART_ENTRYPOINT_ARGS
The Dart entrypoint arguments that is executed upon initialization.protected static String
ARG_DART_ENTRYPOINT_URI
The Dart entrypoint method's URI that is executed upon initialization.protected static String
ARG_DESTROY_ENGINE_WITH_FRAGMENT
True if theFlutterEngine
in the createdFlutterFragment
should be destroyed when theFlutterFragment
is destroyed, false if theFlutterEngine
should outlive theFlutterFragment
.protected static String
ARG_ENABLE_STATE_RESTORATION
True if the framework state in the engine attached to this engine should be stored and restored when this fragment is created and destroyed.protected static String
ARG_FLUTTER_INITIALIZATION_ARGS
Flutter shell arguments.protected static String
ARG_FLUTTERVIEW_RENDER_MODE
protected static String
ARG_FLUTTERVIEW_TRANSPARENCY_MODE
protected static String
ARG_HANDLE_DEEPLINKING
Whether the activity delegate should handle the deeplinking request.protected static String
ARG_INITIAL_ROUTE
Initial Flutter route that is rendered in a Navigator widget.protected static String
ARG_SHOULD_ATTACH_ENGINE_TO_ACTIVITY
protected static String
ARG_SHOULD_AUTOMATICALLY_HANDLE_ON_BACK_PRESSED
True if the fragment should receiveonBackPressed()
events automatically, without requiring an explicit activity call through.protected static String
ARG_SHOULD_DELAY_FIRST_ANDROID_VIEW_DRAW
Whether to delay the Android drawing pass till after the Flutter UI has been displayed.static int
FLUTTER_VIEW_ID
The ID of theFlutterView
created by this activity.-
Fields inherited from interface android.content.ComponentCallbacks2
TRIM_MEMORY_BACKGROUND, TRIM_MEMORY_COMPLETE, TRIM_MEMORY_MODERATE, TRIM_MEMORY_RUNNING_CRITICAL, TRIM_MEMORY_RUNNING_LOW, TRIM_MEMORY_RUNNING_MODERATE, TRIM_MEMORY_UI_HIDDEN
-
-
Constructor Summary
Constructors Constructor Description FlutterFragment()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
cleanUpFlutterEngine(FlutterEngine flutterEngine)
Hook for the host to cleanup references that were established inconfigureFlutterEngine(FlutterEngine)
before the host is destroyed or detached.void
configureFlutterEngine(FlutterEngine flutterEngine)
Configures aFlutterEngine
after its creation.static FlutterFragment
createDefault()
Creates aFlutterFragment
with a default configuration.io.flutter.embedding.android.FlutterActivityAndFragmentDelegate
createDelegate(io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.Host host)
Default delegate factory that creates a simple FlutterActivityAndFragmentDelegate instance.void
detachFromFlutterEngine()
Activity
getActivity()
String
getAppBundlePath()
A custom path to the bundle that contains this Flutter app's resources, e.g., Dart code snapshots.String
getCachedEngineId()
Returns the ID of a statically cachedFlutterEngine
to use within thisFlutterFragment
, ornull
if thisFlutterFragment
does not want to use a cachedFlutterEngine
.Context
getContext()
List<String>
getDartEntrypointArgs()
The Dart entrypoint arguments will be passed as a list of string to Dart's entrypoint function.String
getDartEntrypointFunctionName()
Returns the name of the Dart method that thisFlutterFragment
should execute to start a Flutter app.String
getDartEntrypointLibraryUri()
Returns the library URI of the Dart method that thisFlutterFragment
should execute to start a Flutter app.ExclusiveAppComponent<Activity>
getExclusiveAppComponent()
Returns the Android App Component exclusively attached toFlutterEngine
.FlutterEngine
getFlutterEngine()
Hook for subclasses to obtain a reference to theFlutterEngine
that is owned by thisFlutterActivity
.FlutterShellArgs
getFlutterShellArgs()
FlutterActivityAndFragmentDelegate.Host
method that is used byFlutterActivityAndFragmentDelegate
to obtain Flutter shell arguments when initializing Flutter.String
getInitialRoute()
Returns the initial route that should be rendered within Flutter, once the Flutter app starts.androidx.lifecycle.Lifecycle
getLifecycle()
RenderMode
getRenderMode()
TransparencyMode
getTransparencyMode()
void
onActivityResult(int requestCode, int resultCode, Intent data)
A result has been returned after an invocation ofFragment.startActivityForResult(Intent, int)
.void
onAttach(Context context)
void
onBackPressed()
The hardware back button was pressed.void
onCreate(Bundle savedInstanceState)
View
onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
void
onDestroyView()
void
onDetach()
void
onFlutterSurfaceViewCreated(FlutterSurfaceView flutterSurfaceView)
void
onFlutterTextureViewCreated(FlutterTextureView flutterTextureView)
void
onFlutterUiDisplayed()
Invoked after theFlutterView
within thisFlutterFragment
starts rendering pixels to the screen.void
onFlutterUiNoLongerDisplayed()
Invoked after theFlutterView
within thisFlutterFragment
stops rendering pixels to the screen.void
onNewIntent(Intent intent)
A new Intent was received by theActivity
that currently owns thisFragment
.void
onPause()
void
onPostResume()
void
onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)
The result of a permission request has been received.void
onResume()
void
onSaveInstanceState(Bundle outState)
void
onStart()
void
onStop()
void
onTrimMemory(int level)
Callback invoked when memory is low.void
onUserLeaveHint()
TheActivity
that owns thisFragment
is about to go to the background as the result of a user's choice/action, i.e., not as the result of an OS decision.boolean
popSystemNavigator()
Allow implementer to customize the behavior needed when the Flutter framework calls to pop the Android-side navigation stack.FlutterEngine
provideFlutterEngine(Context context)
Hook for subclasses to return aFlutterEngine
with whatever configuration is desired.PlatformPlugin
providePlatformPlugin(Activity activity, FlutterEngine flutterEngine)
SplashScreen
provideSplashScreen()
Provides aSplashScreen
to display while Flutter initializes and renders its first frame.boolean
shouldAttachEngineToActivity()
boolean
shouldDestroyEngineWithHost()
Returns false if theFlutterEngine
within thisFlutterFragment
should outlive theFlutterFragment
, itself.boolean
shouldDispatchAppLifecycleState()
Give the host application a chance to take control of the app lifecycle events.boolean
shouldHandleDeeplinking()
Whether to handle the deeplinking from theIntent
automatically if thegetInitialRoute
returns null.boolean
shouldRestoreAndSaveState()
void
updateSystemUiOverlays()
static FlutterFragment.CachedEngineFragmentBuilder
withCachedEngine(String engineId)
Returns aFlutterFragment.CachedEngineFragmentBuilder
to create aFlutterFragment
with a cachedFlutterEngine
inFlutterEngineCache
.static FlutterFragment.NewEngineFragmentBuilder
withNewEngine()
Returns aFlutterFragment.NewEngineFragmentBuilder
to create aFlutterFragment
with a newFlutterEngine
and a desired engine configuration.-
Methods inherited from class androidx.fragment.app.Fragment
dump, equals, getActivity, getAllowEnterTransitionOverlap, getAllowReturnTransitionOverlap, getArguments, getChildFragmentManager, getContext, getEnterTransition, getExitTransition, getFragmentManager, getHost, getId, getLayoutInflater, getLayoutInflater, getLifecycle, getLoaderManager, getParentFragment, getReenterTransition, getResources, getRetainInstance, getReturnTransition, getSavedStateRegistry, getSharedElementEnterTransition, getSharedElementReturnTransition, getString, getString, getTag, getTargetFragment, getTargetRequestCode, getText, getUserVisibleHint, getView, getViewLifecycleOwner, getViewLifecycleOwnerLiveData, getViewModelStore, hashCode, hasOptionsMenu, instantiate, instantiate, isAdded, isDetached, isHidden, isInLayout, isMenuVisible, isRemoving, isResumed, isStateSaved, isVisible, onActivityCreated, onAttach, onAttachFragment, onConfigurationChanged, onContextItemSelected, onCreateAnimation, onCreateAnimator, onCreateContextMenu, onCreateOptionsMenu, onDestroy, onDestroyOptionsMenu, onGetLayoutInflater, onHiddenChanged, onInflate, onInflate, onLowMemory, onMultiWindowModeChanged, onOptionsItemSelected, onOptionsMenuClosed, onPictureInPictureModeChanged, onPrepareOptionsMenu, onPrimaryNavigationFragmentChanged, onViewCreated, onViewStateRestored, postponeEnterTransition, postponeEnterTransition, registerForContextMenu, requestPermissions, requireActivity, requireArguments, requireContext, requireFragmentManager, requireHost, requireParentFragment, requireView, setAllowEnterTransitionOverlap, setAllowReturnTransitionOverlap, setArguments, setEnterSharedElementCallback, setEnterTransition, setExitSharedElementCallback, setExitTransition, setHasOptionsMenu, setInitialSavedState, setMenuVisibility, setReenterTransition, setRetainInstance, setReturnTransition, setSharedElementEnterTransition, setSharedElementReturnTransition, setTargetFragment, setUserVisibleHint, shouldShowRequestPermissionRationale, startActivity, startActivity, startActivityForResult, startActivityForResult, startIntentSenderForResult, startPostponedEnterTransition, toString, unregisterForContextMenu
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface android.content.ComponentCallbacks
onConfigurationChanged, onLowMemory
-
-
-
-
Field Detail
-
FLUTTER_VIEW_ID
public static final int FLUTTER_VIEW_ID
The ID of theFlutterView
created by this activity.This ID can be used to lookup
FlutterView
in the Android view hierarchy. For more, seeView.findViewById(int)
.
-
ARG_DART_ENTRYPOINT
protected static final String ARG_DART_ENTRYPOINT
The Dart entrypoint method name that is executed upon initialization.- See Also:
- Constant Field Values
-
ARG_DART_ENTRYPOINT_URI
protected static final String ARG_DART_ENTRYPOINT_URI
The Dart entrypoint method's URI that is executed upon initialization.- See Also:
- Constant Field Values
-
ARG_DART_ENTRYPOINT_ARGS
protected static final String ARG_DART_ENTRYPOINT_ARGS
The Dart entrypoint arguments that is executed upon initialization.- See Also:
- Constant Field Values
-
ARG_INITIAL_ROUTE
protected static final String ARG_INITIAL_ROUTE
Initial Flutter route that is rendered in a Navigator widget.- See Also:
- Constant Field Values
-
ARG_HANDLE_DEEPLINKING
protected static final String ARG_HANDLE_DEEPLINKING
Whether the activity delegate should handle the deeplinking request.- See Also:
- Constant Field Values
-
ARG_APP_BUNDLE_PATH
protected static final String ARG_APP_BUNDLE_PATH
Path to Flutter's Dart code.- See Also:
- Constant Field Values
-
ARG_SHOULD_DELAY_FIRST_ANDROID_VIEW_DRAW
protected static final String ARG_SHOULD_DELAY_FIRST_ANDROID_VIEW_DRAW
Whether to delay the Android drawing pass till after the Flutter UI has been displayed.- See Also:
- Constant Field Values
-
ARG_FLUTTER_INITIALIZATION_ARGS
protected static final String ARG_FLUTTER_INITIALIZATION_ARGS
Flutter shell arguments.- See Also:
- Constant Field Values
-
ARG_FLUTTERVIEW_RENDER_MODE
protected static final String ARG_FLUTTERVIEW_RENDER_MODE
- See Also:
- Constant Field Values
-
ARG_FLUTTERVIEW_TRANSPARENCY_MODE
protected static final String ARG_FLUTTERVIEW_TRANSPARENCY_MODE
- See Also:
- Constant Field Values
-
ARG_SHOULD_ATTACH_ENGINE_TO_ACTIVITY
protected static final String ARG_SHOULD_ATTACH_ENGINE_TO_ACTIVITY
- See Also:
- Constant Field Values
-
ARG_CACHED_ENGINE_ID
protected static final String ARG_CACHED_ENGINE_ID
The ID of aFlutterEngine
cached inFlutterEngineCache
that will be used within the createdFlutterFragment
.- See Also:
- Constant Field Values
-
ARG_DESTROY_ENGINE_WITH_FRAGMENT
protected static final String ARG_DESTROY_ENGINE_WITH_FRAGMENT
True if theFlutterEngine
in the createdFlutterFragment
should be destroyed when theFlutterFragment
is destroyed, false if theFlutterEngine
should outlive theFlutterFragment
.- See Also:
- Constant Field Values
-
ARG_ENABLE_STATE_RESTORATION
protected static final String ARG_ENABLE_STATE_RESTORATION
True if the framework state in the engine attached to this engine should be stored and restored when this fragment is created and destroyed.- See Also:
- Constant Field Values
-
ARG_SHOULD_AUTOMATICALLY_HANDLE_ON_BACK_PRESSED
protected static final String ARG_SHOULD_AUTOMATICALLY_HANDLE_ON_BACK_PRESSED
True if the fragment should receiveonBackPressed()
events automatically, without requiring an explicit activity call through.- See Also:
- Constant Field Values
-
-
Method Detail
-
createDefault
@NonNull public static FlutterFragment createDefault()
Creates aFlutterFragment
with a default configuration.FlutterFragment
's default configuration creates a newFlutterEngine
within theFlutterFragment
and uses the following settings:- Dart entrypoint: "main"
- Initial route: "/"
- Render mode: surface
- Transparency mode: transparent
To use a new
FlutterEngine
with different settings, usewithNewEngine()
.To use a cached
FlutterEngine
instead of creating a new one, usewithCachedEngine(String)
.
-
withNewEngine
@NonNull public static FlutterFragment.NewEngineFragmentBuilder withNewEngine()
Returns aFlutterFragment.NewEngineFragmentBuilder
to create aFlutterFragment
with a newFlutterEngine
and a desired engine configuration.
-
withCachedEngine
@NonNull public static FlutterFragment.CachedEngineFragmentBuilder withCachedEngine(@NonNull String engineId)
Returns aFlutterFragment.CachedEngineFragmentBuilder
to create aFlutterFragment
with a cachedFlutterEngine
inFlutterEngineCache
.An
IllegalStateException
will be thrown during the lifecycle of theFlutterFragment
if a cachedFlutterEngine
is requested but does not exist in the cache.To create a
FlutterFragment
that uses a newFlutterEngine
, usecreateDefault()
orwithNewEngine()
.
-
createDelegate
public io.flutter.embedding.android.FlutterActivityAndFragmentDelegate createDelegate(io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.Host host)
Default delegate factory that creates a simple FlutterActivityAndFragmentDelegate instance.- Specified by:
createDelegate
in interfaceio.flutter.embedding.android.FlutterActivityAndFragmentDelegate.DelegateFactory
-
getExclusiveAppComponent
public ExclusiveAppComponent<Activity> getExclusiveAppComponent()
Returns the Android App Component exclusively attached toFlutterEngine
.
-
onAttach
public void onAttach(@NonNull Context context)
- Overrides:
onAttach
in classandroidx.fragment.app.Fragment
-
onCreate
public void onCreate(@Nullable Bundle savedInstanceState)
- Overrides:
onCreate
in classandroidx.fragment.app.Fragment
-
onCreateView
@Nullable public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
- Overrides:
onCreateView
in classandroidx.fragment.app.Fragment
-
onStart
public void onStart()
- Overrides:
onStart
in classandroidx.fragment.app.Fragment
-
onResume
public void onResume()
- Overrides:
onResume
in classandroidx.fragment.app.Fragment
-
onPostResume
public void onPostResume()
-
onPause
public void onPause()
- Overrides:
onPause
in classandroidx.fragment.app.Fragment
-
onStop
public void onStop()
- Overrides:
onStop
in classandroidx.fragment.app.Fragment
-
onDestroyView
public void onDestroyView()
- Overrides:
onDestroyView
in classandroidx.fragment.app.Fragment
-
onSaveInstanceState
public void onSaveInstanceState(Bundle outState)
- Overrides:
onSaveInstanceState
in classandroidx.fragment.app.Fragment
-
detachFromFlutterEngine
public void detachFromFlutterEngine()
-
onDetach
public void onDetach()
- Overrides:
onDetach
in classandroidx.fragment.app.Fragment
-
onRequestPermissionsResult
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults)
The result of a permission request has been received.See
Activity.onRequestPermissionsResult(int, String[], int[])
- Overrides:
onRequestPermissionsResult
in classandroidx.fragment.app.Fragment
- Parameters:
requestCode
- identifier passed with the initial permission requestpermissions
- permissions that were requestedgrantResults
- permission grants or denials
-
onNewIntent
public void onNewIntent(@NonNull Intent intent)
A new Intent was received by theActivity
that currently owns thisFragment
.- Parameters:
intent
- new Intent
-
onBackPressed
public void onBackPressed()
The hardware back button was pressed.If the fragment uses
shouldAutomaticallyHandleOnBackPressed(true)
, this method should not be called through. It will be called automatically instead.
-
onActivityResult
public void onActivityResult(int requestCode, int resultCode, Intent data)
A result has been returned after an invocation ofFragment.startActivityForResult(Intent, int)
.- Overrides:
onActivityResult
in classandroidx.fragment.app.Fragment
- Parameters:
requestCode
- request code sent withFragment.startActivityForResult(Intent, int)
resultCode
- code representing the result of theActivity
that was launcheddata
- any corresponding return data, held within anIntent
-
onUserLeaveHint
public void onUserLeaveHint()
TheActivity
that owns thisFragment
is about to go to the background as the result of a user's choice/action, i.e., not as the result of an OS decision.
-
onTrimMemory
public void onTrimMemory(int level)
Callback invoked when memory is low.This implementation forwards a memory pressure warning to the running Flutter app.
- Specified by:
onTrimMemory
in interfaceComponentCallbacks2
- Parameters:
level
- level
-
getFlutterShellArgs
@NonNull public FlutterShellArgs getFlutterShellArgs()
FlutterActivityAndFragmentDelegate.Host
method that is used byFlutterActivityAndFragmentDelegate
to obtain Flutter shell arguments when initializing Flutter.
-
getCachedEngineId
@Nullable public String getCachedEngineId()
Returns the ID of a statically cachedFlutterEngine
to use within thisFlutterFragment
, ornull
if thisFlutterFragment
does not want to use a cachedFlutterEngine
.
-
shouldDestroyEngineWithHost
public boolean shouldDestroyEngineWithHost()
Returns false if theFlutterEngine
within thisFlutterFragment
should outlive theFlutterFragment
, itself.Defaults to true if no custom
is provided
, false if a customFlutterEngine
is provided.
-
getDartEntrypointFunctionName
@NonNull public String getDartEntrypointFunctionName()
Returns the name of the Dart method that thisFlutterFragment
should execute to start a Flutter app.Defaults to "main".
Used by this
FlutterFragment
'sFlutterActivityAndFragmentDelegate.Host
-
getDartEntrypointArgs
@Nullable public List<String> getDartEntrypointArgs()
The Dart entrypoint arguments will be passed as a list of string to Dart's entrypoint function.A value of null means do not pass any arguments to Dart's entrypoint function.
Subclasses may override this method to directly control the Dart entrypoint arguments.
-
getDartEntrypointLibraryUri
@Nullable public String getDartEntrypointLibraryUri()
Returns the library URI of the Dart method that thisFlutterFragment
should execute to start a Flutter app.Defaults to null (example value: "package:foo/bar.dart").
Used by this
FlutterFragment
'sFlutterActivityAndFragmentDelegate.Host
-
getAppBundlePath
@NonNull public String getAppBundlePath()
A custom path to the bundle that contains this Flutter app's resources, e.g., Dart code snapshots.When unspecified, the value is null, which defaults to the app bundle path defined in
FlutterLoader.findAppBundlePath()
.Used by this
FlutterFragment
'sFlutterActivityAndFragmentDelegate.Host
-
getInitialRoute
@Nullable public String getInitialRoute()
Returns the initial route that should be rendered within Flutter, once the Flutter app starts.Defaults to
null
, which signifies a route of "/" in Flutter.Used by this
FlutterFragment
'sFlutterActivityAndFragmentDelegate.Host
-
getRenderMode
@NonNull public RenderMode getRenderMode()
Returns the desiredRenderMode
for theFlutterView
displayed in thisFlutterFragment
.Defaults to
RenderMode.surface
.Used by this
FlutterFragment
'sFlutterActivityAndFragmentDelegate.Host
-
getTransparencyMode
@NonNull public TransparencyMode getTransparencyMode()
Returns the desiredTransparencyMode
for theFlutterView
displayed in thisFlutterFragment
.Defaults to
TransparencyMode.transparent
.Used by this
FlutterFragment
'sFlutterActivityAndFragmentDelegate.Host
-
provideSplashScreen
@Nullable public SplashScreen provideSplashScreen()
Description copied from interface:SplashScreenProvider
Provides aSplashScreen
to display while Flutter initializes and renders its first frame.- Specified by:
provideSplashScreen
in interfaceSplashScreenProvider
- Returns:
- The splash screen.
-
provideFlutterEngine
@Nullable public FlutterEngine provideFlutterEngine(@NonNull Context context)
Hook for subclasses to return aFlutterEngine
with whatever configuration is desired.By default this method defers to this
FlutterFragment
's surroundingActivity
, if thatActivity
implementsFlutterEngineProvider
. If this method is overridden, the surroundingActivity
will no longer be given an opportunity to provide aFlutterEngine
, unless the subclass explicitly implements that behavior.Consider returning a cached
FlutterEngine
instance from this method to avoid the typical warm-up time that a newFlutterEngine
instance requires.If null is returned then a new default
FlutterEngine
will be created to back thisFlutterFragment
.Used by this
FlutterFragment
'sFlutterActivityAndFragmentDelegate.Host
- Specified by:
provideFlutterEngine
in interfaceFlutterEngineProvider
- Parameters:
context
- The current context. e.g. An activity.- Returns:
- The Flutter engine.
-
getFlutterEngine
@Nullable public FlutterEngine getFlutterEngine()
Hook for subclasses to obtain a reference to theFlutterEngine
that is owned by thisFlutterActivity
.
-
providePlatformPlugin
@Nullable public PlatformPlugin providePlatformPlugin(@Nullable Activity activity, @NonNull FlutterEngine flutterEngine)
-
configureFlutterEngine
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine)
Configures aFlutterEngine
after its creation.This method is called after
provideFlutterEngine(Context)
, and after the givenFlutterEngine
has been attached to the owningFragmentActivity
. SeeActivityControlSurface.attachToActivity( ExclusiveAppComponent, Lifecycle)
.It is possible that the owning
FragmentActivity
opted not to connect itself as anActivityControlSurface
. In that case, any configuration, e.g., plugins, must not expect or depend upon an availableActivity
at the time that this method is invoked.The default behavior of this method is to defer to the owning
FragmentActivity
as aFlutterEngineConfigurator
. Subclasses can override this method if the subclass needs to override theFragmentActivity
's behavior, or add to it.Used by this
FlutterFragment
'sFlutterActivityAndFragmentDelegate.Host
- Specified by:
configureFlutterEngine
in interfaceFlutterEngineConfigurator
- Parameters:
flutterEngine
- The Flutter engine.
-
cleanUpFlutterEngine
public void cleanUpFlutterEngine(@NonNull FlutterEngine flutterEngine)
Hook for the host to cleanup references that were established inconfigureFlutterEngine(FlutterEngine)
before the host is destroyed or detached.This method is called in
onDetach()
.- Specified by:
cleanUpFlutterEngine
in interfaceFlutterEngineConfigurator
- Parameters:
flutterEngine
- The Flutter engine.
-
shouldAttachEngineToActivity
public boolean shouldAttachEngineToActivity()
SeeshouldAttachEngineToActivity()
andshouldAttachEngineToActivity()
.Used by this
FlutterFragment
'sFlutterActivityAndFragmentDelegate
-
shouldHandleDeeplinking
public boolean shouldHandleDeeplinking()
Whether to handle the deeplinking from theIntent
automatically if thegetInitialRoute
returns null.
-
onFlutterSurfaceViewCreated
public void onFlutterSurfaceViewCreated(@NonNull FlutterSurfaceView flutterSurfaceView)
-
onFlutterTextureViewCreated
public void onFlutterTextureViewCreated(@NonNull FlutterTextureView flutterTextureView)
-
onFlutterUiDisplayed
public void onFlutterUiDisplayed()
Invoked after theFlutterView
within thisFlutterFragment
starts rendering pixels to the screen.This method forwards
onFlutterUiDisplayed()
to its attachedActivity
, if the attachedActivity
implementsFlutterUiDisplayListener
.Subclasses that override this method must call through to the
super
method.Used by this
FlutterFragment
'sFlutterActivityAndFragmentDelegate.Host
-
onFlutterUiNoLongerDisplayed
public void onFlutterUiNoLongerDisplayed()
Invoked after theFlutterView
within thisFlutterFragment
stops rendering pixels to the screen.This method forwards
onFlutterUiNoLongerDisplayed()
to its attachedActivity
, if the attachedActivity
implementsFlutterUiDisplayListener
.Subclasses that override this method must call through to the
super
method.Used by this
FlutterFragment
'sFlutterActivityAndFragmentDelegate.Host
-
shouldRestoreAndSaveState
public boolean shouldRestoreAndSaveState()
-
updateSystemUiOverlays
public void updateSystemUiOverlays()
-
shouldDispatchAppLifecycleState
public boolean shouldDispatchAppLifecycleState()
Give the host application a chance to take control of the app lifecycle events.Return
false
means the host application dispatches these app lifecycle events, while returntrue
means the engine dispatches these events.Defaults to
true
.
-
popSystemNavigator
public boolean popSystemNavigator()
Allow implementer to customize the behavior needed when the Flutter framework calls to pop the Android-side navigation stack.Avoid overriding this method when using
shouldAutomaticallyHandleOnBackPressed(true)
. If you do, you must alwaysreturn super.popSystemNavigator()
rather thanreturn false
. Otherwise the navigation behavior will recurse infinitely between this method andonBackPressed()
, breaking navigation.- Specified by:
popSystemNavigator
in interfacePlatformPlugin.PlatformPluginDelegate
- Returns:
- true if the implementation consumed the pop signal. If false, a default behavior of
finishing the activity or sending the signal to
OnBackPressedDispatcher
will be executed.
-
getContext
@NonNull public abstract Context getContext()
-
getActivity
@Nullable public abstract Activity getActivity()
-
getLifecycle
@NonNull public abstract androidx.lifecycle.Lifecycle getLifecycle()
-
-