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.
This commit is contained in:
Feodor Fitsner 2025-09-25 12:45:58 -07:00
parent 9064573dfa
commit 7d76ef2829
1 changed files with 13 additions and 4 deletions

View File

@ -73,7 +73,7 @@ void main(List<String> 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<String> 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<String> 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<String> 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 {