动态导航路线

时间:2018-03-02 08:54:56

标签: flutter

我有一个应用程序,我想尝试重拍一下。在这个应用程序中,导航路线变化很大,并没有在集中的地方定义,而是由不同的开发人员在不同的“微项目”中定义,然后在主应用程序中绑定在一起。

所以我的问题是:我可以在运行时以某种方式动态设置MaterialApp上的路由吗?因此,当加载给定的窗口小部件类时,它将获取MaterialApp实例并在MaterialApp上设置新的路由映射,之前的所有路由现在都已消失并替换为新路由?

1 个答案:

答案 0 :(得分:2)

index.html上有一个属性来处理动态路由:MaterialApp

例如,如果你这样做

onGenerateRoute

这将处理所有路由,即使它们没有静态定义,只要它们匹配onGenerateRoute: (routeSettings) { if (condition) { return new MaterialPageRoute( builder: (context) => new MyPage(), settings: routeSettings, ); } // fallback route here },

但请记住,Flutter禁止使用condition。这意味着如果你想进一步推动事情,你必须使用代码生成器。结合装饰器,你可以随时写出:

dart:mirror

它会自动生成处理路由class MyWidget extends StatelessWidget { final int prop; @MyNavigation MyWidget({this.prop}); @override Widget build(BuildContext context) { return new Container(); } } 的代码。