在路由之间导航时比较以下转换。
- 颤振:https://i.stack.imgur.com/tdtyg.jpg
- 安卓:https://i.stack.imgur.com/7Lw4e.jpg
您可以看到过渡的一个明显差异。在页面之间导航时,这些页面会相互拉动和拉回。 我更喜欢的风格是这个,而不是 Flutter 使用的风格。
这是一个错误还是故意更改了此转换?
我使用以下代码进行导航:
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Navigation Transition'),
),
body: Center(
child: RaisedButton(
child: Text('Navigate'),
onPressed: () => Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Scaffold(
appBar: AppBar(
title: Text('Navigation Transition'),
),
body: Center(
child: RaisedButton(
child: Text('Navigate'),
onPressed: () => Navigator.pop(context),
),
),
),
),
),
),
),
);
}
按如下方式修改应用程序主题数据解决了问题:
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Navigation transitions',
theme: ThemeData(
pageTransitionsTheme: PageTransitionsTheme(
builders: const {
TargetPlatform.android: OpenUpwardsPageTransitionsBuilder(),
},
),
),
....
}
有关路线更改期间转换的详细信息:
- 材料页面路线.class文档
- 页面转换主题.class文档
- 导航器.class文档