【问题标题】:flutter disable animation router navigator.pushNamed颤振禁用动画路由器 navigator.pushNamed
【发布时间】:2022-01-13 07:27:32
【问题描述】:

我为我的应用使用路由器。 并使用 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


    【解决方案1】:

    您需要在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(),
      },
    

    【讨论】:

    • 我用过routes: routes, onGenerateRoute: (settings) { if (settings.name == "/firstPage") { return PageRouteBuilder( transitionDuration: Duration.zero, settings: settings, pageBuilder: (_, __, ___) =&gt; FirstPage()); } },这个但仍然有动画
    • 我有很多路线。我不知道我可以用DefaultPageInitialPage 写哪一个
    • 我已更新答案,请使用此代码重试
    • 我有很多路线。我不知道我可以在 DefaultPage 和 InitialPage 中写哪个
    • 然后添加 else if?
    猜你喜欢
    • 1970-01-01
    • 2020-05-13
    • 2018-06-14
    • 2021-08-30
    • 2019-12-16
    • 2021-02-21
    • 2018-09-15
    • 2022-01-24
    相关资源
    最近更新 更多