【问题标题】:Navigator.push without animation - FlutterNavigator.push 没有动画 - Flutter
【发布时间】:2020-11-10 01:31:14
【问题描述】:

我有几个带有下一步按钮的注册表单,我想在不同的屏幕之间切换

onTap: () => { Navigator.push(
  context,
  MaterialPageRoute(
    builder: (context) => SomeOtherScaffold()))
  },

但没有自带的默认动画。

【问题讨论】:

标签: flutter dart


【解决方案1】:

如果你想使用其他动画,你可以使用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 的更多信息,请关注以下文章:

  1. Page Route Animation
  2. Everything you need for Flutter Page Transition

如果你不想要默认的,你需要为你的过渡定义一些东西,这个答案将帮助你实现这一点。

【讨论】:

    猜你喜欢
    • 2019-10-20
    • 1970-01-01
    • 2021-07-13
    • 1970-01-01
    • 2021-01-30
    • 1970-01-01
    • 2021-01-05
    • 2023-02-16
    • 2022-08-17
    相关资源
    最近更新 更多