Flutter 与 Android 相比"stock"导航转换的差异



在路由之间导航时比较以下转换。

  • 颤振: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文档

最新更新