【发布时间】: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 中。
提前致谢。
【问题讨论】: