将Flutter应用程序集成到另一个Flutter应用程序中

oxosxuxt  于 2022-11-25  发布在  Flutter
关注(0)|答案(3)|浏览(231)

我有一个更大的应用程序名为X,我有另一个较小的名为Y。他们现在彼此分离,他们工作正常。我想集成应用程序Y在X中。我想把Y的代码在X项目,但他们应该有一个不同的主,所以我可以设置不同的主题和路线。有没有办法做到这一点?
////更新////
我对所有答案投了赞成票,因为它们都是正确的。
但如果您知道这个问题,请回答。我正在使用GetX中的GetMaterialApp,而不是MaterialApp。它返回错误
“软件包:flutter/源代码/小部件/框架. dart”:失败的Assert:行5334位置14:'_dependents.是空的':不是真的。
我该怎么解决这个问题?

nhaq1z21

nhaq1z211#

您可以在项目中使用多个MaterialApp(),将代码/文件组合起来,就像应用在另一个屏幕上一样,您将得到对InheritedWidget具有不同引用的应用,如ThemeNavigatorMediaQuery...

/*...*/
 MaterialApp(
 /*...*/
   home: AppXHome(),
  ),
 /*...*/

class AppXHome extends StatelessWidegt {  
 @override
 Widget build(BuildContext context) {
  return Column(
   children: <Widget>[
   Container(),
   Container(),
   MaterialApp(
   home: AppYHome(),
     ),
    ],
   ),}}
qvsjd97n

qvsjd97n2#

您可以使用两个MaterialApp小工具定义单独的路由,一个用于您的APP X,另一个用于您的APP Y,主功能将保持不变,无需更改。
只需在APP X中为APP Y创建一条路线,并将您的APP Y代码 Package 在另一个MaterialApp Widget中,您可以在其中为APP Y定义路线。

n3schb8v

n3schb8v3#

即使您将一个或多个应用程序集成到另一个应用程序中,在整个合并之后也只能有一个main
所以你需要把对方的主要逻辑移到当前的逻辑上,然后再处理主题。
你可以利用这个sample,它有三个不同的应用程序,带有自定义的主题

相关问题