我的应用程序使用路由器。 并使用 Navigator.pushNamed 来使用它。 但我不想要它的动画。
MaterialApp(
debugShowCheckedModeBanner: false,
routes: routes,
initialRoute: '/firstPage')
这是我的路线:
Map<String, WidgetBuilder> routes = <String, WidgetBuilder>{
'/firstPage': (context) => const FirstPage(),
'/': (context) => const BottomNavBar( activeTabIndex: 0, widgetActive: ExploreHome(), ),
// another routes
};
我用它来呼叫路由:
Navigator.pushNamed(
context,
'/',
arguments: {
"title": "explore",
"text": "something"
},);
并使用
final args = (ModalRoute.of(context)!.settings.arguments ??{"title": " ", "text": ""}) as dynamic;
为我的 ExploreHome()
课程获取论据。
那么如何删除动画路由器?
但是,虽然已经晚了,但可能对某人有帮助
如果你不想在 flutter 中使用默认路由动画,那么只需使用此代码
Navigator.pushAndRemoveUntil(
context,
PageRouteBuilder(
settings: RouteSettings(name: routeName),
pageBuilder: (_, __, ___) {
return YourWidget();
},
),
(route) => false,
);
您需要在
onGenerateRoute
小部件中使用 MaterialApp
。
onGenerateRoute: (settings) {
if (settings.name == "/initialRoute") {
return PageRouteBuilder(
transitionDuration: Duration.zero,
settings: settings,
pageBuilder: (_, __, ___) => InitialPage(),
}
// default route
return PageRouteBuilder(
transitionDuration: Duration.zero,
settings: settings,
pageBuilder: (_, __, ___) => DefaultRoute(),
},