dart flutter disable animation router navigator.pushNamed

dba5bblo  于 11个月前  发布在  Flutter
关注(0)|答案(2)|浏览(84)

我使用路由器为我的应用程序。并使用导航。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()类获取参数。
那么我该如何删除动画路由器呢?

nbysray5

nbysray51#

然而,它的晚,但可能有助于某人
如果你不想在flutter中使用默认的路线动画,那么就使用下面的代码

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

字符串

g9icjywg

g9icjywg2#

您需要在MaterialApp小部件中使用onGenerateRoute

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(),
  },

字符串

相关问题