From 7d76ef2829d77ad201e83e8b701fd8cfc0a88e74 Mon Sep 17 00:00:00 2001 From: Feodor Fitsner Date: Thu, 25 Sep 2025 12:45:58 -0700 Subject: [PATCH] Add multi-view mode support to app startup Introduces a 'multiView' parameter to the app and conditionally runs the app with 'runWidget' or 'runApp' based on the multi-view mode. This enables support for Flet Web Multi-View mode and improves flexibility in app initialization. --- {{cookiecutter.out_dir}}/lib/main.dart | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/{{cookiecutter.out_dir}}/lib/main.dart b/{{cookiecutter.out_dir}}/lib/main.dart index c0782aa..a55b517 100644 --- a/{{cookiecutter.out_dir}}/lib/main.dart +++ b/{{cookiecutter.out_dir}}/lib/main.dart @@ -73,7 +73,7 @@ void main(List args) async { ext.ensureInitialized(); } - runApp(FutureBuilder( + var app = FutureBuilder( future: prepareApp(), builder: (BuildContext context, AsyncSnapshot snapshot) { if (snapshot.hasData) { @@ -84,7 +84,8 @@ void main(List args) async { assetsDir: assetsDir, showAppStartupScreen: showAppStartupScreen, appStartupScreenMessage: appStartupScreenMessage, - extensions: extensions) + extensions: extensions, + multiView: isMultiView()) : FutureBuilder( future: runPythonApp(args), builder: @@ -103,7 +104,8 @@ void main(List args) async { assetsDir: assetsDir, showAppStartupScreen: showAppStartupScreen, appStartupScreenMessage: appStartupScreenMessage, - extensions: extensions); + extensions: extensions, + multiView: isMultiView()); } }); } else if (snapshot.hasError) { @@ -116,7 +118,14 @@ void main(List args) async { // loading return MaterialApp(home: showAppBootScreen ? const BootScreen() : const BlankScreen()); } - })); + }); + + if (isMultiView()) { + debugPrint("Flet Web Multi-View mode"); + runWidget(app); + } else { + runApp(app); + } } Future prepareApp() async {