Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Report progress on Dismissible update callback #95504

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Feb 5, 2022
Merged

Report progress on Dismissible update callback #95504

merged 7 commits into from
Feb 5, 2022

Conversation

cachapa
Copy link
Contributor

@cachapa cachapa commented Dec 18, 2021

This PR adds a progress parameter to the Dismissible onUpdate callback.
The value represents how far the dismissible child has been dragged in its parent container as a ratio value between 0.0 and 1.0, which can be useful to e.g. fade elements in sync with the gesture.

This implementation also correctly reports the position during the return animation when the dismiss is unsuccessful.

This PR partly solves #21230 (3rd. point) and closes #74582

Pre-launch Checklist

  • I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
  • I read the [Tree Hygiene] wiki page, which explains my responsibilities.
  • I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
  • I signed the [CLA].
  • I listed at least one issue that this PR fixes in the description above.
  • I updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making.
  • All existing and new tests are passing.

@flutter-dashboard flutter-dashboard bot added the framework flutter/packages/flutter repository. See also f: labels. label Dec 18, 2021
@goderbauer goderbauer requested a review from Piinks January 5, 2022 22:37
@@ -12,6 +12,7 @@ const DismissDirection defaultDismissDirection = DismissDirection.horizontal;
const double crossAxisEndOffset = 0.5;
bool reportedDismissUpdateReached = false;
bool reportedDismissUpdatePreviousReached = false;
double reportedDismissUpdateProgress = 0.0;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add tests for non-zero cases?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I went back to check and it turns out I forgot to update the value using the callback.
It's fixed now, I'll commit shortly.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add another test that validates it reports the right value somewhere in between 0 and 1? Thanks!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@Piinks Piinks added f: material design flutter/packages/flutter/material repository. c: new feature Nothing broken; request for a new capability labels Jan 10, 2022
@@ -12,6 +12,7 @@ const DismissDirection defaultDismissDirection = DismissDirection.horizontal;
const double crossAxisEndOffset = 0.5;
bool reportedDismissUpdateReached = false;
bool reportedDismissUpdatePreviousReached = false;
double reportedDismissUpdateProgress = 0.0;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add another test that validates it reports the right value somewhere in between 0 and 1? Thanks!

Copy link
Contributor

@Piinks Piinks left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This LGTM! Thank you for the contribution!
I've reached out to the team for a secondary review.

@cachapa
Copy link
Contributor Author

cachapa commented Jan 21, 2022

Thanks. I'm sorry it took so long, I didn't notice that the tests were failing since last week.

Copy link
Contributor

@Hixie Hixie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@cachapa
Copy link
Contributor Author

cachapa commented Feb 5, 2022

I'm kind of new to this, is there anything else required from my side?

@Hixie
Copy link
Contributor

Hixie commented Feb 5, 2022

Nope sorry, we just didn't notice it was ready to land! My bad!

@fluttergithubbot fluttergithubbot merged commit 9d2a294 into flutter:master Feb 5, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 5, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 5, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 6, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 6, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 6, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 8, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Feb 8, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Feb 8, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Feb 9, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Feb 9, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Feb 9, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Feb 9, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Feb 9, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Feb 9, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Feb 9, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Feb 9, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Feb 9, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Feb 9, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Feb 9, 2022
engine-flutter-autoroll added a commit to engine-flutter-autoroll/plugins that referenced this pull request Feb 9, 2022
NATHANIELCROSBY1 added a commit to NATHANIELCROSBY1/flutter that referenced this pull request Feb 19, 2022
@NATHANIELCROSBY1
NATHANIELCROSBY1 create
…
609e127
13 days ago
Git stats
 27,477 commits
Files
Type
Name
Latest commit message
Commit time
.github
Bump github/codeql-action from 1.0.26 to 1.0.31 (flutter#97820)
14 days ago
bin
Roll Engine from 2a4709a to 0712096 (1 revision) (flutter#9…
13 days ago
dev
Include -isysroot -arch and -miphoneos-version-min when creating dumm…
15 days ago
examples
Clean up the bindings APIs. (flutter#89451)
16 days ago
packages
Report progress on Dismissible update callback (flutter#95504)
14 days ago
.ci.yaml
Marks Linux_android opacity_peephole_fade_transition_text_perf__e2e_s…
15 days ago
.cirrus.yml
Pin dependencies in docker file. (flutter#97466)
18 days ago
.gitattributes
Add pre-stable support for create on Windows (flutter#51895)
2 years ago
.gitignore
Add macOS ephemeral to gitignore (flutter#96397)
20 days ago
AUTHORS
Mirror before scaling in _AnimatedIconPainter (flutter#93312)
24 days ago
CODEOWNERS
[codeowners] Remove *_builders.json ownership (flutter#91691)
4 months ago
CODE_OF_CONDUCT.md
Update CODE_OF_CONDUCT.md (flutter#94583)
3 months ago
CONTRIBUTING.md
Links How to contribute to Flutter YouTube video (flutter#96313)
last month
LICENSE
License update (flutter#45373)
2 years ago
PATENT_GRANT
Rename patent file (flutter#38686)
3 years ago
README.md
Update README (flutter#97271)
24 days ago
TESTOWNERS
Add benchmarks to measure impact of alpha saveLayers in DisplayLists (f…
23 days ago
analysis_options.yaml
Enable no_leading_underscores_for_local_identifiers (flutter#96422)
29 days ago
dartdoc_options.yaml
Eliminate uses of pub executable in docs publishing and sample analys…
6 months ago
flutter_console.bat
License update (flutter#45373)
2 years ago
git clone
create
13 days ago
README.md
Flutter logo
Build Status - Cirrus Discord badge Twitter handle

Flutter is Google's SDK for crafting beautiful, fast user experiences for mobile, web, and desktop from a single codebase. Flutter works with existing code, is used by developers and organizations around the world, and is free and open source.

Documentation
Install Flutter
Flutter documentation
Development wiki
Contributing to Flutter
For announcements about new releases, follow the [email protected] mailing list. Our documentation also tracks breaking changes across releases.

Terms of service
The Flutter tool may occasionally download resources from Google servers. By downloading or using the Flutter SDK you agree to the Google Terms of Service: https://policies.google.com/terms

For example, when installed from GitHub (as opposed to from a prepackaged archive), the Flutter tool will download the Dart SDK from Google servers immediately when first run, as it is used to execute the flutter tool itself. This will also occur when Flutter is upgraded (e.g. by running the flutter upgrade command).

About Flutter
We think Flutter will help you create beautiful, fast apps, with a productive, extensible and open development model, whether you're targeting iOS or Android, web, Windows, macOS, Linux or embedding it as the UI toolkit for a platform of your choice.

Beautiful user experiences
We want to enable designers to deliver their full creative vision without being forced to water it down due to limitations of the underlying framework. Flutter's layered architecture gives you control over every pixel on the screen and its powerful compositing capabilities let you overlay and animate graphics, video, text, and controls without limitation. Flutter includes a full set of widgets that deliver pixel-perfect experiences whether you're building for iOS (Cupertino) or Android (Material), along with support for customizing or creating entirely new visual components.

Reflectly hero image

Fast results
Flutter is fast. It's powered by the same hardware-accelerated 2D graphics library that underpins Chrome and Android: Skia. We architected Flutter to support glitch-free, jank-free graphics at the native speed of your device. Flutter code is powered by the world-class Dart platform, which enables compilation to 32-bit and 64-bit ARM machine code for iOS and Android, as well as JavaScript for the web and Intel x64 for desktop devices.

Dart diagram

Productive development
Flutter offers stateful hot reload, allowing you to make changes to your code and see the results instantly without restarting your app or losing its state.

Hot reload animation

Extensible and open model
Flutter works with any development tool (or none at all), and also includes editor plug-ins for both Visual Studio Code and IntelliJ / Android Studio. Flutter provides tens of thousands of packages to speed your development, regardless of your target platform. And accessing other native code is easy, with support for both FFI and platform-specific APIs.

Flutter is a fully open-source project, and we welcome contributions. Information on how to get started can be found in our contributor guide.
clocksmith pushed a commit to clocksmith/flutter that referenced this pull request Mar 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c: new feature Nothing broken; request for a new capability f: material design flutter/packages/flutter/material repository. framework flutter/packages/flutter repository. See also f: labels.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

expose the moveController of the Dismissible widget
4 participants