[英]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.