【发布时间】:2020-11-10 01:31:14
【问题描述】:
我有几个带有下一步按钮的注册表单,我想在不同的屏幕之间切换
onTap: () => { Navigator.push(
context,
MaterialPageRoute(
builder: (context) => SomeOtherScaffold()))
},
但没有自带的默认动画。
【问题讨论】:
我有几个带有下一步按钮的注册表单,我想在不同的屏幕之间切换
onTap: () => { Navigator.push(
context,
MaterialPageRoute(
builder: (context) => SomeOtherScaffold()))
},
但没有自带的默认动画。
【问题讨论】:
如果你想使用其他动画,你可以使用transitionBuilder,在你的PageRoute。下面为您介绍如何使用它:
import 'package:flutter/material.dart';
main() {
runApp(MaterialApp(
home: Page1(),
));
}
class Page1 extends StatelessWidget {
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Center(
child: RaisedButton(
child: Text('Go!'),
onPressed: () {
Navigator.of(context).push(_createRoute());
},
),
),
);
}
}
Route _createRoute() {
return PageRouteBuilder(
pageBuilder: (context, animation, secondaryAnimation) => Page2(),
transitionsBuilder: (context, animation, secondaryAnimation, child) {
return child;
},
);
}
如果你想立即过渡,你可以这样做:
transitionDuration: Duration(seconds: 0)
这会将转换时间减少到 0 秒,最终会加快转换速度。
要了解有关Page Animation Transition 的更多信息,请关注以下文章:
如果你不想要默认的,你需要为你的过渡定义一些东西,这个答案将帮助你实现这一点。
【讨论】: