flutter / flutter/flutter

FadeForwardsPageTransitionsBuilder's duration is too slow

Open
#173,252 1 comment 3 reactions 0 assignees View on GitHub
a: animation a: fidelity c: proposal p: material_ui P2 package platform-android team-design triaged-design
Dominant language
Dart
Stars
179k
Forks
31.1k
PR merge metrics
PR metrics pending

Description

The Fade Forwards transition appears slower than native.

| Native Android Settings | Flutter |
| --- | --- |
| | |

However, the duration that we use is exactly correct according to the Android source code (800ms).

https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/material/page_transitions_theme.dart#L761

What's different is that native Android is using Material 3 Expressive springs, and Flutter is not. Even using a very long-tailed curve, Flutter seems way too slow.

Flutter's options are:

1. Wait for a first party Flutter implementation of springs (I'm not sure if/when Flutter will have a spring implementation that could help here).
2. Deal with the transition feeling slow (very soon it will be the default transition and lots of users will see it https://github.com/flutter/flutter/pull/165832).
3. Shorten the duration.

For now, I support number three.

As seen in https://github.com/flutter/flutter/pull/165832, it is quite painful to change the default page transition duration in Flutter. There were several customer test failures and Google test failures because of this. I even created [TransitionDurationObserver](https://main-api.flutter.dev/flutter/flutter_test/TransitionDurationObserver-class.html) to help with this.

In order to avoid multiple breakages, we should update this transition duration now as a part of https://github.com/flutter/flutter/pull/165832, so our users are only broken once by a changing page transition duration.

Discovered in: https://github.com/flutter/flutter/pull/154718#discussion_r2089812016

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.