flutter 禁用动画路由器 navigator.pushNamed

问题描述 投票:0回答:2

我的应用程序使用路由器。 并使用 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 dart animation routes router
2个回答
0
投票

但是,虽然已经晚了,但可能对某人有帮助

如果你不想在 flutter 中使用默认路由动画,那么只需使用此代码

Navigator.pushAndRemoveUntil(
      context,
      PageRouteBuilder(
        settings: RouteSettings(name: routeName),
        pageBuilder: (_, __, ___) {
          return  YourWidget();
        },
      ),
      (route) => false,
    );

-1
投票

您需要在

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(),
  },
© www.soinside.com 2019 - 2024. All rights reserved.