initAndroidView static method
- required int id,
- required String viewType,
- required TextDirection layoutDirection,
- dynamic creationParams,
- MessageCodec? creationParamsCodec,
- VoidCallback? onFocus,
Creates a controller for a new Android view.
The id
argument is an unused unique identifier generated with
platformViewsRegistry.
The viewType
argument is the identifier of the Android view type to be
created, a factory for this view type must have been registered on the
platform side. Platform view factories are typically registered by plugin
code. Plugins can register a platform view factory with
PlatformViewRegistry#registerViewFactory.
The creationParams
argument will be passed as the args argument of
PlatformViewFactory#create
The creationParamsCodec
argument is the codec used to encode
creationParams
before sending it to the platform side. It should match
the codec passed to the constructor of
PlatformViewFactory.
This is typically one of: StandardMessageCodec, JSONMessageCodec,
StringCodec, or BinaryCodec.
The onFocus
argument is a callback that will be invoked when the Android
View asks to get the input focus.
The Android view will only be created after AndroidViewController.setSize is called for the first time.
If creationParams
is non null then creationParamsCodec
must not be
null.
This attempts to use the newest and most efficient platform view implementation when possible. In cases where that is not supported, it falls back to using Virtual Display.
Implementation
static AndroidViewController initAndroidView({
required int id,
required String viewType,
required TextDirection layoutDirection,
dynamic creationParams,
MessageCodec<dynamic>? creationParamsCodec,
VoidCallback? onFocus,
}) {
assert(creationParams == null || creationParamsCodec != null);
final TextureAndroidViewController controller = TextureAndroidViewController._(
viewId: id,
viewType: viewType,
layoutDirection: layoutDirection,
creationParams: creationParams,
creationParamsCodec: creationParamsCodec,
);
_instance._focusCallbacks[id] = onFocus ?? () {};
return controller;
}