我有一个名为 X 的较大应用程序,还有另一个名为 Y 的较小应用程序。 他们现在彼此分开,并且工作得很好。 我想将应用程序 Y 集成到 X 中。我想将 Y 的代码放在 X 项目中,但它们应该有不同的 Main,以便我可以设置不同的主题和路线。有什么办法可以做到吗?
我使用 GetX 中的 GetMaterialApp 而不是 MaterialApp,它返回错误:
'package:flutter/src/widgets/framework.dart': 断言失败: 第 5334 行 pos 14: '_dependents.isEmpty': 不正确。
我该如何解决这个问题?
您可以在项目中使用多个
MaterialApp()
,组合代码/文件,就像应用程序位于另一个屏幕上一样,您将生成对其 InheritedWidget
有不同引用的应用程序,例如 Theme
、Navigator
, MediaQuery
...
/*...*/
MaterialApp(
/*...*/
home: AppXHome(),
),
/*...*/
class AppXHome extends StatelessWidegt {
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
Container(),
Container(),
MaterialApp(
home: AppYHome(),
),
],
),}}
您可以使用两个 MaterialApp 小部件来定义单独的路由, 一个用于您的 APP X,另一个用于您的 APP Y, 主要功能将保持不变,无需更改,
只需在 APP X 中为应用程序 Y 创建一条路由,并将您的应用程序 Y 代码包装在另一个 MaterialApp Widget 中,您可以在其中为应用程序 Y 定义路由。