Flutter Engine
The Flutter Engine
|
Public Member Functions | |
NewEngineInGroupFragmentBuilder (@NonNull String engineGroupId) | |
NewEngineInGroupFragmentBuilder ( @NonNull Class<? extends FlutterFragment > fragmentClass, @NonNull String engineGroupId) | |
NewEngineInGroupFragmentBuilder | dartEntrypoint (@NonNull String dartEntrypoint) |
NewEngineInGroupFragmentBuilder | initialRoute (@NonNull String initialRoute) |
NewEngineInGroupFragmentBuilder | handleDeeplinking (@NonNull boolean handleDeeplinking) |
NewEngineInGroupFragmentBuilder | renderMode (@NonNull RenderMode renderMode) |
NewEngineInGroupFragmentBuilder | transparencyMode ( @NonNull TransparencyMode transparencyMode) |
NewEngineInGroupFragmentBuilder | shouldAttachEngineToActivity (boolean shouldAttachEngineToActivity) |
NewEngineInGroupFragmentBuilder | shouldAutomaticallyHandleOnBackPressed (boolean shouldAutomaticallyHandleOnBackPressed) |
NewEngineInGroupFragmentBuilder | shouldDelayFirstAndroidViewDraw ( @NonNull boolean shouldDelayFirstAndroidViewDraw) |
Protected Member Functions | |
Bundle | createArgs () |
Package Functions | |
public< T extends FlutterFragment > T | build () |
Builder that creates a new FlutterFragment
that uses a cached io.flutter.embedding.engine.FlutterEngineGroup
to create a new io.flutter.embedding.engine.FlutterEngine
with arguments
that correspond to the values set on this Builder
.
Subclasses of FlutterFragment
that do not introduce any new arguments can use this Builder
to construct instances of the subclass without subclassing this
.
BuilderMyFlutterFragment f = new
FlutterFragment.NewEngineInGroupFragmentBuilder(MyFlutterFragment.class, engineGroupId)
.someProperty(...) .someOtherProperty(...) .build<MyFlutterFragment>();
Subclasses of FlutterFragment
that introduce new arguments should subclass this NewEngineInGroupFragmentBuilder
to add the new properties:
FlutterFragment
subclass has a no-arg constructor. NewEngineInGroupFragmentBuilder
. NewEngineInGroupFragmentBuilder
's no-arg constructor and invoke the super constructor to set the FlutterFragment
subclass: public
MyBuilder() { super(MyFlutterFragment.class); }
NewEngineInGroupFragmentBuilder#createArgs()
, call through to the super method, then add the new properties as arguments in the Bundle
. Once a NewEngineInGroupFragmentBuilder
subclass is defined, the FlutterFragment
subclass can be instantiated as follows. MyFlutterFragment f = new MyBuilder()
.someExistingProperty(...) .someNewProperty(...) .build<MyFlutterFragment>();
Definition at line 792 of file FlutterFragment.java.
|
inline |
Definition at line 804 of file FlutterFragment.java.
|
inline |
Definition at line 808 of file FlutterFragment.java.
|
inlinepackage |
Constructs a new FlutterFragment
(or a subclass) that is configured based on properties set on this Builder
.
Definition at line 977 of file FlutterFragment.java.
|
inlineprotected |
Creates a Bundle
of arguments that are assigned to the new FlutterFragment
.
Subclasses should override this method to add new properties to the Bundle
. Subclasses must call through to the super method to collect all existing property values.
Definition at line 952 of file FlutterFragment.java.
|
inline |
The name of the initial Dart method to invoke, defaults to "main".
Definition at line 816 of file FlutterFragment.java.
|
inline |
Whether to handle the deeplinking from the Intent
automatically if the
returns null.
getInitialRoute
Definition at line 836 of file FlutterFragment.java.
|
inline |
The initial route that a Flutter app will render in this FlutterFragment
, defaults to "/".
Definition at line 826 of file FlutterFragment.java.
|
inline |
Render Flutter either as a RenderMode#surface
or a RenderMode#texture
. You should use surface
unless you have a specific reason to use texture
.
comes with a significant performance impact, but
texturetexture
can be displayed beneath other Android View
s and animated, whereas surface
cannot.
Definition at line 848 of file FlutterFragment.java.
|
inline |
Whether or not this FlutterFragment
should automatically attach its Activity
as a control surface for its io.flutter.embedding.engine.FlutterEngine
.
Control surfaces are used to provide Android resources and lifecycle events to plugins that are attached to the io.flutter.embedding.engine.FlutterEngine
. If
is true then this
shouldAttachEngineToActivityFlutterFragment
will connect its io.flutter.embedding.engine.FlutterEngine
to the surrounding Activity
, along with any plugins that are registered with that FlutterEngine
. This allows plugins to access the Activity
, as well as receive Activity
-specific calls, e.g., android.app.Activity#onNewIntent(Intent)
. If shouldAttachEngineToActivity
is false, then this FlutterFragment
will not automatically manage the connection between its io.flutter.embedding.engine.FlutterEngine
and the surrounding Activity
. The Activity
will need to be manually connected to this FlutterFragment
's io.flutter.embedding.engine.FlutterEngine
by the app developer. See FlutterEngine#getActivityControlSurface()
.
One reason that a developer might choose to manually manage the relationship between the Activity
and io.flutter.embedding.engine.FlutterEngine
is if the developer wants to move the FlutterEngine
somewhere else. For example, a developer might want the io.flutter.embedding.engine.FlutterEngine
to outlive the surrounding
so that it can be used later in a different
ActivityActivity
. To accomplish this, the io.flutter.embedding.engine.FlutterEngine
will need to be disconnected from the surrounding Activity
at an unusual time, preventing this FlutterFragment
from correctly managing the relationship between the io.flutter.embedding.engine.FlutterEngine
and the surrounding Activity
.
Another reason that a developer might choose to manually manage the relationship between the Activity
and io.flutter.embedding.engine.FlutterEngine
is if the developer wants to prevent, or explicitly control when the io.flutter.embedding.engine.FlutterEngine
's plugins have access to the surrounding
. For example, imagine that this
ActivityFlutterFragment
only takes up part of the screen and the app developer wants to ensure that none of the Flutter plugins are able to manipulate the surrounding Activity
. In this case, the developer would not want the io.flutter.embedding.engine.FlutterEngine
to have access to the Activity
, which can be accomplished by setting shouldAttachEngineToActivity
to false
.
Definition at line 905 of file FlutterFragment.java.
|
inline |
Whether or not this FlutterFragment
should automatically receive onBackPressed()
events, rather than requiring an explicit activity call through. Disabled by default.
When enabled, the activity will automatically dispatch back-press events to the fragment's OnBackPressedCallback
, instead of requiring the activity to manually call onBackPressed()
in client code. If enabled, do not invoke onBackPressed()
manually.
This behavior relies on the implementation of popSystemNavigator()
. It's not recommended to override that method when enabling this attribute, but if you do, you should always fall back to calling super.popSystemNavigator()
when not relying on custom behavior.
Definition at line 927 of file FlutterFragment.java.
|
inline |
Whether to delay the Android drawing pass till after the Flutter UI has been displayed.
See {#link FlutterActivityAndFragmentDelegate::onCreateView} for more details.
Definition at line 939 of file FlutterFragment.java.
|
inline |
Support a TransparencyMode#transparent
background within io.flutter.embedding.android.FlutterView
, or force an TransparencyMode#opaque
background.
See TransparencyMode
for implications of this selection.
Definition at line 861 of file FlutterFragment.java.