我想要一个页面过渡取决于我去的页面。库比蒂诺是完美的一种方式,像这样:
GetPage(
name: Routes.SPLASH_SCREEN,
page: () => SplashView(),
binding: SplashScreenBinding(),
transition: Transition.cupertino,
transitionDuration: Duration(milliseconds: screenTransitionTime)),
...但是当返回时,我想要相同类型的过渡(一个页面在视觉上将另一个页面推出),但是从左向右移动,而不是从右向左移动。Transition类中没有这样的过渡,所以我尝试自定义我自己的过渡。
我试了几个小时,但找不到任何可用的示例。我需要知道这里发生了什么:
GetPage(
name: Routes.SPLASH_SCREEN,
page: () => SplashView(),
binding: SplashScreenBinding(),
customTransition: ????,
transitionDuration: Duration(milliseconds: screenTransitionTime)),
这是我已经尝试过没有成功:
TransitionBuilder customTransition = (BuildContext context, Animation<double> animation, Animation<double> secondaryAnimation, Widget child) {
return PageTransition(
child: child,
type: PageTransitionType.scale,
alignment: Alignment.topCenter,
duration: Duration(milliseconds: 800),
curve: Curves.elasticOut,
);
};
GetPage(
customTransition: customTransition,
page: NewPage(),
)
以及
TransitionBuilder customTransition = (BuildContext context, Animation<double> animation, Animation<double> secondaryAnimation, Widget child) {
return ScaleTransition(
scale: Tween<double>(begin: 0.0, end: 1.0).animate(
CurvedAnimation(
parent: animation,
curve: Curves.elasticOut,
),
),
child: child,
);
};
GetPage(
customTransition: customTransition,
page: NewPage(),
)
1条答案
按热度按时间g6ll5ycj1#
你可以用Willpopscope Package 你的整个小部件,并在其中添加这个方法:
这将在GetX中添加自定义向后过渡。