【问题标题】:Flutter: use named routes with custom page route builder?Flutter:将命名路由与自定义页面路由构建器一起使用?
【发布时间】:2021-09-02 12:16:07
【问题描述】:

目前在我的颤振项目中,我在这样的屏幕之间导航:

Navigator.push(
   context,
   CustomPageRouteBuilder().getPageRouteBuilder(MainPage()),
);

CustomPageRouteBuilder:

class CustomPageRouteBuilder {
  getPageRouteBuilder(Widget widget) {
    return PageRouteBuilder(
        transitionDuration: Duration(
          milliseconds: 500,
        ),
        transitionsBuilder: (BuildContext context, Animation<double> animation,
            Animation<double> secAnimation, Widget child) {
          animation = CurvedAnimation(
            parent: animation,
            curve: Curves.elasticInOut,
          );
          return ScaleTransition(
            alignment: Alignment.center,
            scale: animation,
            child: child,
          );
        },
        pageBuilder: (BuildContext context, Animation<double> animation,
            Animation<double> secAnimation) {
          return LayoutPage(widget);
        });
  }
}

我如何使用命名路由 + 这个CustomPageRouteBuilder

如果我有这些:

class Routes {
  static const String loginPage = "/loginPage";
  static const String mainPage = "/mainPage";
}

通常看起来像这样:

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        title: 'Flutter Demo',
        home: LoginPage(),
        routes: {
          Routes.loginPage: (context) => LoginPage(),
          Routes.mainPage: (context) => MainPage(),
        },
      );
  }
}

但我想将LoginPage()MainPage() 包装在CustomPageRouteBuilder 中。

提前致谢。

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    使用GetX,它有一个非常简单的路线导航,如下所示:

    Get.toNamed(YOUR_NAMED_ROUTE),
    

    【讨论】:

    • 这如何帮助我使用我创建的页面路由构建器方法?
    猜你喜欢
    • 1970-01-01
    • 2012-01-08
    • 2017-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-25
    • 2018-10-18
    • 2023-03-24
    相关资源
    最近更新 更多