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
Let iOS keyboard dismissal synchronize with scroll #57609
Comments
The upstream visual symptom to fix is #19279 |
I still need this. |
@mleonhard This may help; https://pub.dev/packages/flutter_interactive_keyboard |
Dear Google Flutter Team, A common use-case for chat functions is to scroll up and consult a previous message while composing a new message. Users expect this on all platforms. Flutter currently makes this very hard to implement with acceptable UX on iOS:
Would you please implement this now? Best Wishes, CC: Flutter PM Tim Sneath @timsneath |
Seems flutter want to remove all smoothness of the iOS, or they really don't care about iOS. |
i am in the same situation as you @mleonhard, and as an iOS user myself i can tell that this is simply required as UX experience... Hopefully the upvotes should give some weight to the request as it is impacted many people :/ |
Can I help for this issue ? There is a way in iOS Swift to scroll the keyboard with a custom offset ? |
I have abandoned Flutter because of this, not quite close to iOS experience |
AFAIK there isn't an API to explicitly set the keyboard frames on iOS. Though the workaround described here (a separate but maybe related issue) may worth investigation. |
I also abandoned Flutter because of this and many other problems in Flutter. There has been almost no progress on any of these issues in 2 years. I guess Google Flutter Team has moved on to Desktop Flutter and silently abandoned Mobile Flutter, leaving Flutter for iOS at pre-release quality. 😭 |
And the worst of all: shader jank Flutter on iOS has a quite bad experience, good for early stage startup where they are validating the mvp with less effort |
The year 2023 and Flutter still have a UX gap from native iOS apps. I know a few companies that don't use Flutter because of this “small” problem. 6 years of flutter and still not having it. This should be P1 |
@CavalcanteLeo Hello, @Matt2D is now working on this |
…Movement (#43972) This PR address the movement aspect of the flutter interactive keyboard. It handles pointer movement while a scroll view widget is visible, and the interactive behavior is chosen for keyboardDismissBehavior. This is a desired behavior of the keyboard that has not yet been implemented. Design Document: https://docs.google.com/document/d/1-T7_0mSkXzPaWxveeypIzzzAdyo-EEuP5V84161foL4/edit?pli=1 Issues Address: flutter/flutter#57609 [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
This PR address the movement aspect of the flutter interactive keyboard. It handles pointer up while a scroll view widget is visible, and the interactive behavior is chosen for keyboardDismissBehavior. This is a desired behavior of the keyboard that has not yet been implemented. Design Document: https://docs.google.com/document/d/1-T7_0mSkXzPaWxveeypIzzzAdyo-EEuP5V84161foL4/edit?pli=1 Issues Address: flutter/flutter#57609 [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
This PR addresses an issue with the animation of the keyboard. In iOS 16.0 a delay was included in UIView becomeFirstResponder where the areAnimationsEnabled boolean is no longer immediately read. In response to this issue a delay is added that allows for the animation to be properly disabled. Design Document: https://docs.google.com/document/d/1-T7_0mSkXzPaWxveeypIzzzAdyo-EEuP5V84161foL4/edit?pli=1 Issues Address: flutter/flutter#57609 [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
This PR addresses an issue with the behavior of the keyboard. Originally the behavior of the keyboard was to see if the pointer was above or below the middle of the keyboards full size and then animate appropriately. However we found that the behavior is instead based on velocity. This PR adjust the code to match this behavior. Design Document: https://docs.google.com/document/d/1-T7_0mSkXzPaWxveeypIzzzAdyo-EEuP5V84161foL4/edit?pli=1 Issues Address: flutter/flutter#57609 [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
…Movement (flutter#43972) This PR address the movement aspect of the flutter interactive keyboard. It handles pointer movement while a scroll view widget is visible, and the interactive behavior is chosen for keyboardDismissBehavior. This is a desired behavior of the keyboard that has not yet been implemented. Design Document: https://docs.google.com/document/d/1-T7_0mSkXzPaWxveeypIzzzAdyo-EEuP5V84161foL4/edit?pli=1 Issues Address: flutter/flutter#57609 [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
This PR address the movement aspect of the flutter interactive keyboard. It handles pointer up while a scroll view widget is visible, and the interactive behavior is chosen for keyboardDismissBehavior. This is a desired behavior of the keyboard that has not yet been implemented. Design Document: https://docs.google.com/document/d/1-T7_0mSkXzPaWxveeypIzzzAdyo-EEuP5V84161foL4/edit?pli=1 Issues Address: flutter/flutter#57609 [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
This PR addresses an issue with the animation of the keyboard. In iOS 16.0 a delay was included in UIView becomeFirstResponder where the areAnimationsEnabled boolean is no longer immediately read. In response to this issue a delay is added that allows for the animation to be properly disabled. Design Document: https://docs.google.com/document/d/1-T7_0mSkXzPaWxveeypIzzzAdyo-EEuP5V84161foL4/edit?pli=1 Issues Address: flutter/flutter#57609 [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
This PR addresses an issue with the behavior of the keyboard. Originally the behavior of the keyboard was to see if the pointer was above or below the middle of the keyboards full size and then animate appropriately. However we found that the behavior is instead based on velocity. This PR adjust the code to match this behavior. Design Document: https://docs.google.com/document/d/1-T7_0mSkXzPaWxveeypIzzzAdyo-EEuP5V84161foL4/edit?pli=1 Issues Address: flutter/flutter#57609 [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
While we are waiting for this to be resolved, you can check my plugin which tends to close this gap. |
@ky1vstar |
Thanks @ky1vstar, Works like a charm 💯 |
This comment was marked as off-topic.
This comment was marked as off-topic.
This issue is assigned to @Matt2D but has had no recent status updates. Please consider unassigning this issue if it is not going to be addressed in the near future. This allows people to have a clearer picture of what work is actually planned. Thanks! |
@subins829 this issue is specific to iOS behaviour. It looks like your comment refers to Android specific behaviour, which is tracked in #62876. Would you mind replying on that issue? |
The bulk of this work for iOS landed in flutter/engine#43972, flutter/engine#44457, flutter/engine#44586, and dismiss on scroll should now be working on iOS, along with flick up/down gestures that either completely dismiss/restore the keyboard partway through a scroll. @hellohuanlin the main feature here was landed by @Matt2D, if there are any remaining items to close this, we should precisely lay them out here. |
@cbracken The screenshot approach doesn't work on iOS 17 anymore since the keyboard is running out of process. We have to find another approach for iOS 17. Let's keep this open for now. |
Since #21814, keyboards will dismiss during scroll. For higher fidelity, rather than one single brisk dismissal event, the keyboard dismissal should ideally be done gradually along with the scroll gesture.
Android counterpart: #62876
The text was updated successfully, but these errors were encountered: