简体   繁体   English

如何从颤振插件本机代码返回小部件?

[英]How to return a widget from flutter plugin native code?

I am trying to learn flutter plugin development as I will need it anyway to act seriously with porting native SDKs.我正在尝试学习 Flutter 插件开发,因为无论如何我都需要它来认真对待移植原生 SDK。

The point is, I don't really know how to return an Android Activity as a Widget that could be placed in any Column or Row etc.关键是,我真的不知道如何将 Android Activity作为可以放置在任何ColumnRow等中的Widget返回。

For now, all I did was to port Android's Toast functionality.目前,我所做的只是移植 Android 的Toast功能。

The flutter maps plugin seems to be little overcomplicated, while I am learning it I still look for a simpler example of how to convert native layouts into Flutter widgets. Flutter maps 插件似乎有点过于复杂,虽然我正在学习它,但我仍然在寻找一个更简单的示例来说明如何将原生布局转换为 Flutter 小部件。

You can not return Android Activity as a Widget in flutter.您不能在颤动中将 Android Activity 作为小部件返回。 Flutter plugins or flutter platform channels allow only basic datatypes or codecs between native, given here . Flutter 插件或 Flutter 平台通道仅允许原生之间的基本数据类型或编解码器,在此处给出。

You can still run an activity or display any widget by calling a method over platform channel, and once that activity is completed you can send result back to flutter code over the bridge using "MethodChannel.Result" object provided in method call.您仍然可以通过平台通道调用方法来运行活动或显示任何小部件,一旦该活动完成,您可以使用方法调用中提供的“MethodChannel.Result”对象将结果发送回桥上的颤振代码。 like:喜欢:

methodResult.success(data);

You can refer ImagePicker plugin for details about how to run new Activity and add onActivityResult delegates to flutter registrar to handle and pass activity's result back to flutter.您可以参考ImagePicker 插件了解有关如何运行新 Activity 并将 onActivityResult 委托添加到 Flutter 注册器以处理并将 Activity 的结果传回 Flutter 的详细信息。

See this guide for hosting native Android and iOS views in your Flutter app.请参阅本指南以在您的 Flutter 应用中托管原生 Android 和 iOS 视图。 For example, if you need to host a view from a native Android or iOS SDK in your flutter app.例如,如果您需要在 Flutter 应用中托管来自原生 Android 或 iOS SDK 的视图。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM