[英]Embedding multiple Flutter Widgets in single UIViewController best practices?
我正在研究将 Flutter 集成到现有的 iOS 和 Android 项目中。 我的主要经验是在 iOS 上,所以这篇文章将从 iOS 的角度出发。 但是可以随意将 UIViewController 替换为 Activity/Fragment。 我将就我目前的理解提供一些背景知识,并在文章末尾提出我的实际问题。
我们的主要用例是将小的Widget
嵌入到现有的视图控制器中。 我已经阅读了 Flutter 文档和指南,并成功地与我们的项目集成(实际上很简单!)但担心 Flutter 的整体设计与我们期望的用法不兼容。
似乎 Flutter 理想地希望成为应用程序的整个 UI:在应用程序启动时创建并启动一个引擎,将引擎传递给 FlutterView,并使其成为应用程序的根视图。 或者,Flutter 似乎很乐意在应用程序中拥有整个流程,您可以在其中推送一个全屏Widget
,它可以执行一些工作,可能会推送/弹出更多屏幕,并最终将控制权返回给本机应用程序。
但是,在我有一个带有一些 UI 组件的本机屏幕的情况下,我还想有一个显示一些其他数据的颤动Widget
- 例如一个条形图 - 似乎我需要创建单独的模块,或单独的@pragma(vm:entry-point)
在我的 Flutter 项目中为我想要显示的每种类型的Widget
(在本例中为图形@pragma(vm:entry-point)
函数。
我的理解是,这些Widget
的每一个还需要自己的 Flutter 引擎实例,该实例将正确的入口点/路由加载到该Widget
的main
函数,然后调用runApp(MyWidget)
。
接下来是我的实际问题:
Widget
的最佳实践是什么?Widget
嵌入到视图控制器中,我需要为每个单独的引擎隔离创建独立的引擎,这是否正确?我仍然在关注 Flutter,但到目前为止它的功能给我留下了深刻的印象! 如果我在这里遗漏了什么,请告诉我。
对于将来遇到此问题的任何人,自 2020 年 10 月 21 日起,不鼓励在本机 UIViewController 中嵌入多个 Flutter 小部件的用例。 以高性能方式执行此操作需要更新 Flutter 以更好地跨引擎实例共享内存和线程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.