gpt4 book ai didi

flutter - 动态导航路线

转载 作者:IT王子 更新时间:2023-10-29 06:41:44 25 4
gpt4 key购买 nike

我有一个应用程序,我想尝试重新制作它。在这个应用中,导航路线变化很大,不是在一个集中的地方定义的,而是由不同的开发者在不同的“微项目”中定义的,然后在主应用中绑定(bind)在一起。

所以我的问题是:我能否在运行时以某种方式在 MaterialApp 上动态设置路由?因此,当加载给定的小部件类时,它会获取 MaterialApp 实例并在 MaterialApp 上设置一个新的路由映射,之前的任何路由现在都消失并被新路由替换了吗?

最佳答案

MaterialApp 有一个属性来处理动态路由:onGenerateRoute

例如,如果你这样做

onGenerateRoute: (routeSettings) {
if (condition) {
return new MaterialPageRoute(
builder: (context) => new MyPage(),
settings: routeSettings,
);
}
// fallback route here
},

这将处理所有 路由,即使它们不是静态定义的,只要它们匹配条件

但请记住,Flutter 禁止使用 dart:mirror。这意味着如果你想进一步插入事情,你必须使用代码生成器。结合一个装饰器,你可以在任何时候写:

class MyWidget extends StatelessWidget {
final int prop;

@MyNavigation
MyWidget({this.prop});

@override
Widget build(BuildContext context) {
return new Container();
}
}

它会自动生成代码来处理路由/mywidget/{prop}

关于flutter - 动态导航路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49065668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com