这是indexloc提供的服务,不要输入任何密码
Skip to content

Predictive Back Gesture animation doesn't and can't implement material design spec to match native behavior #153577

@PaulGrandperrin

Description

@PaulGrandperrin

Steps to reproduce

Use PredictiveBackPageTransitionsBuilder()

Expected results

The same animations and behavior as the native apps and system.
Spec: https://developer.android.com/design/ui/mobile/guides/patterns/predictive-back

Actual results

In the "pre-commit" part of the animation:

  1. the front page abruptly disappears when swiping across 35% of the screen
  2. the front and back pages ignore if the gesture started from the left or right edge
  3. the front and back pages don't go up and down following finger

In the "post-commit" part of the animation:

  1. the animation goes way too fast (<100ms, should be ~300ms)
  2. the animation blocks all user inputs for about 700ms after the animation is visually finished
  3. the animation is the same as the "pre-commit" one, which is not what happens in the rest of Android and in the spec.

1. and 6. can be worked around by writing a custom PageTransitionBuilder.
2. and 3. can be partially worked around: only for the front page.
4. and 5. cannot be worked around without editing the SDK source code itself.

Flutter Doctor output

Doctor output
flutter doctor -v                                                                                                                                            devenv-shell-env 
[✓] Flutter (Channel master, 3.24.0-1.0.pre.605, on NixOS 24.05 (Uakari) 6.8.12, locale en_US.UTF-8)
    • Flutter version 3.24.0-1.0.pre.605 on channel master at /home/paulg/Repos/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision bced008679 (14 hours ago), 2024-08-15 22:29:24 -0400
    • Engine revision a8fefc8118
    • Dart version 3.4.3
    • DevTools version 2.38.0

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /nix/store/nzwnj7rq8a6cvzbsszf4n9zfvx101zm5-androidsdk/libexec/android-sdk
    • Platform android-34, build-tools 30.0.3
    • ANDROID_HOME = /nix/store/nzwnj7rq8a6cvzbsszf4n9zfvx101zm5-androidsdk/libexec/android-sdk
    • ANDROID_SDK_ROOT = /nix/store/nzwnj7rq8a6cvzbsszf4n9zfvx101zm5-androidsdk/libexec/android-sdk
    • Java binary at: /nix/store/l7pwy1rxdrb13svqandm720d06fycd8c-openjdk-17.0.11+9/lib/openjdk/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.11+9-nixos)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • CHROME_EXECUTABLE = /nix/store/cg5bvzxml5bbdw8wlrywb6q7hpdjq0ij-google-chrome-127.0.6533.88/bin/google-chrome-stable

[✓] Linux toolchain - develop for Linux desktop
    • clang version 16.0.6
    • cmake version 3.29.6
    • ninja version 1.12.1
    • pkg-config version 0.29.2

[!] Android Studio (not installed)
    • Android Studio not found; download from https://developer.android.com/studio/index.html
      (or visit https://flutter.dev/docs/get-started/install/linux#android-setup for detailed instructions).

[✓] Connected device (3 available)
    • Pixel 7 Pro (mobile) • 192.168.1.13:43591 • android-arm64  • Android 15 (API 35)
    • Linux (desktop)      • linux              • linux-x64      • NixOS 24.05 (Uakari) 6.8.12
    • Chrome (web)         • chrome             • web-javascript • Google Chrome 127.0.6533.88

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work listf: routesNavigator, Router, and related APIs.frameworkflutter/packages/flutter repository. See also f: labels.platform-androidAndroid applications specificallyteam-frameworkOwned by Framework teamtriaged-frameworkTriaged by Framework team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions