Repository navigation
Open
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work lista: animationAnimation APIsAnimation APIsa: text inputEntering text in a text field or keyboard related problemsEntering text in a text field or keyboard related problemsc: performanceRelates to speed or footprint issues (see "perf:" labels)Relates to speed or footprint issues (see "perf:" labels)platform-iosiOS applications specificallyiOS applications specificallyteam-text-inputOwned by Text Input teamOwned by Text Input teamtriaged-text-inputTriaged by Text Input teamTriaged by Text Input team
Description
Is there an existing issue for this?
- I have searched the existing issues
- I have read the guide to filing a bug
Steps to reproduce
This issue has been reproduced on old iphone models (tested on iphone 7 with iOS 15.7.9)
Expected results
Bottom inset should move in sync with keyboard native animation.
Actual results
There is a 4s animation delay, and during this time textfield is covered by the keyboard, see video from this comment (tested on iPhone 7, iOS 15.7.9) #138845 (comment)
Code sample
Screenshots or Video
RPReplay_Final1700799120.mp4
Logs
Logs
[Paste your logs here]Flutter Doctor output
Doctor output
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel master, 3.17.0-11.0.pre.9, on macOS 12.6.5 21G531 darwin-arm64, locale en-IT)
[!] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
✗ cmdline-tools component is missing
Run `path/to/sdkmanager --install "cmdline-tools;latest"`
See https://developer.android.com/studio/command-line for more details.
✗ Android license status unknown.
Run `flutter doctor --android-licenses` to accept the SDK licenses.
See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.
[✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2022.2)
[✓] Connected device (3 available)
[✓] Network resources
Metadata
Metadata
Assignees
Labels
P2Important issues not at the top of the work listImportant issues not at the top of the work lista: animationAnimation APIsAnimation APIsa: text inputEntering text in a text field or keyboard related problemsEntering text in a text field or keyboard related problemsc: performanceRelates to speed or footprint issues (see "perf:" labels)Relates to speed or footprint issues (see "perf:" labels)platform-iosiOS applications specificallyiOS applications specificallyteam-text-inputOwned by Text Input teamOwned by Text Input teamtriaged-text-inputTriaged by Text Input teamTriaged by Text Input team
Activity
huycozy commentedon Nov 28, 2023
Thanks for filing a separate issue. I triaged this at #138845 (comment), the issue can be reproduced with below minimal & complete sample code (your repository above is using 3rd plugin but it is actually not used in your sample code).
Checking this again on the latest stable and master channels, I don't see this issue anymore, the TextField appears immediately. But if I observe with Devtools, I still see the first (and only) jank.
Screen.Recording.2023-11-28.at.15.16.12.mov
Sample code
flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.16.1, on macOS 14.1 23B74 darwin-x64, locale en-VN) • Flutter version 3.16.1 on channel stable at /Users/huynq/Documents/GitHub/flutter • Upstream repository https://github.com/flutter/flutter.git • Framework revision 7f20e5d18c (9 hours ago), 2023-11-27 09:47:30 -0800 • Engine revision 22b600f240 • Dart version 3.2.1 • DevTools version 2.28.3 [✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0) • Android SDK at /Users/huynq/Library/Android/sdk • Platform android-34, build-tools 34.0.0 • ANDROID_HOME = /Users/huynq/Library/Android/sdk • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694) • All Android licenses accepted. [✓] Xcode - develop for iOS and macOS (Xcode 15.0.1) • Xcode at /Applications/Xcode.app/Contents/Developer • Build 15A507 • CocoaPods version 1.13.0 [✓] Chrome - develop for the web • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome [!] Android Studio (version unknown) • Android Studio at /Applications/Android Studio Preview.app/Contents • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart ✗ Unable to determine Android Studio version. • Java version OpenJDK Runtime Environment (build 17.0.8+0-17.0.8b1000.22-10799086) [✓] Android Studio (version 2022.3) • Android Studio at /Applications/Android Studio Giraffe Patch 3.app/Contents • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231) [✓] Android Studio (version 2022.2) • Android Studio at /Applications/Android Studio.app/Contents • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart • android-studio-dir = /Applications/Android Studio.app/ • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694) [✓] VS Code (version 1.84.2) • VS Code at /Applications/Visual Studio Code.app/Contents • Flutter extension version 3.76.0 [✓] Connected device (3 available) • RMX2001 (mobile) • EUYTFEUSQSRGDA6D • android-arm64 • Android 11 (API 30) • macOS (desktop) • macos • darwin-x64 • macOS 14.1 23B74 darwin-x64 • Chrome (web) • chrome • web-javascript • Google Chrome 119.0.6045.159 [✓] Network resources • All expected network resources are available. ! Doctor found issues in 1 category.Do you notice this issue on your another iOS physical device?
delfme commentedon Nov 28, 2023
With iphone 13 pro iOS 16.3.1, Im sometimes hit by a shake on the first opening, then it is smooth. Probably it is that janky initial frame.
Can someone make time for this and the android equivalent?
I do understand it is not easy, but we cannot show to users a shaking textfield.
huycozy commentedon Nov 29, 2023
Checking this on Android, there's not much jank either but raster can be easily seen when the keyboard pops up. At that time, the input chat view (on the keyboard) will have a slight jerking effect. And I think it could be similar to #120435.
Checking again on iOS, I indeed no longer see the original issue (4s animation delay). However, sometimes a slight jerking effect on the chat view input still exists when the keyboard pops up; no jank at that time, and it is much less raster than Android (mostly just UI frames). I will label the issue for other's input to see if there's a way to explore this more clearly.
Demo video iOS (iPhone 7, iOS 15.8)
RPReplay_Final1701232594.mp4
flutter doctor -v (stable and master)
[✓] Flutter (Channel stable, 3.16.1, on macOS 14.1 23B74 darwin-x64, locale en-VN) • Flutter version 3.16.1 on channel stable at /Users/huynq/Documents/GitHub/flutter • Upstream repository https://github.com/flutter/flutter.git • Framework revision 7f20e5d18c (9 hours ago), 2023-11-27 09:47:30 -0800 • Engine revision 22b600f240 • Dart version 3.2.1 • DevTools version 2.28.3 [✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0) • Android SDK at /Users/huynq/Library/Android/sdk • Platform android-34, build-tools 34.0.0 • ANDROID_HOME = /Users/huynq/Library/Android/sdk • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694) • All Android licenses accepted. [✓] Xcode - develop for iOS and macOS (Xcode 15.0.1) • Xcode at /Applications/Xcode.app/Contents/Developer • Build 15A507 • CocoaPods version 1.13.0 [✓] Chrome - develop for the web • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome [!] Android Studio (version unknown) • Android Studio at /Applications/Android Studio Preview.app/Contents • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart ✗ Unable to determine Android Studio version. • Java version OpenJDK Runtime Environment (build 17.0.8+0-17.0.8b1000.22-10799086) [✓] Android Studio (version 2022.3) • Android Studio at /Applications/Android Studio Giraffe Patch 3.app/Contents • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231) [✓] Android Studio (version 2022.2) • Android Studio at /Applications/Android Studio.app/Contents • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart • android-studio-dir = /Applications/Android Studio.app/ • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694) [✓] VS Code (version 1.84.2) • VS Code at /Applications/Visual Studio Code.app/Contents • Flutter extension version 3.76.0 [✓] Connected device (3 available) • RMX2001 (mobile) • EUYTFEUSQSRGDA6D • android-arm64 • Android 11 (API 30) • macOS (desktop) • macos • darwin-x64 • macOS 14.1 23B74 darwin-x64 • Chrome (web) • chrome • web-javascript • Google Chrome 119.0.6045.159 [✓] Network resources • All expected network resources are available. ! Doctor found issues in 1 category.delfme commentedon Nov 29, 2023
Thx @huycozy I think you used the best words.
On android: jerking effect and delay
On iOS: jerking effect
On iOS, an important fix was merged lately from @cyanglaz and @luckysmg It would be great to know if the residual issue depends on an edge case not covered by the fix or maybe it is something unrelated that must be addressed elsewhere.
We are insisting much on this issue coz we have a premium messaging app that we cannot ship with this bug. But in general, 90% of apps have this UI and bug makes them look “cheap”.
6 remaining items
kkoskenvirta commentedon Jun 7, 2024
This seems to be a possible reason with the problem noticed in my issue for WoltModalSheet.
woltapp/wolt_modal_sheet#222 (comment)
I got also made a more simple demo of the problem here. It suddenly starts to work and then reggresses back to the lag irregularly.
RPReplay_Final1717737630.mp4
loic-sharma commentedon Aug 21, 2025
cc @LongCatIsLooong are you able to reproduce this issue?
anthonytdavis80 commentedon Aug 23, 2025
@loic-sharma you can reproduce the issue with google NotebookLM app (see attached video). Both iOS and android apps have this issue when textfield is placed at the bottom of the screen.
The problem:
Potential Fix:
GPT suggestions:
iOS: You’d need to hook into the native keyboard animation APIs (UIKeyboardWillShowNotification, UIKeyboardFrameEndUserInfoKey, and animation curves) and send frame-by-frame updates to Flutter.
Android: You’d have to intercept InsetsAnimation.Callback or similar APIs (depending on Android version) and push interpolated insets to Flutter each frame.
Flutter engine side: The engine would need a new channel or mechanism to animate viewInsets in sync with the OS animation rather than just sending the final height.
Framework side: Widgets that use MediaQuery.viewInsets would automatically follow the smoother animation.
A skilled Flutter engineer could do it, it’s not a fundamental limitation.
1. iOS Embedder
Goal: Send Flutter updates on keyboard frame for each animation step.
Steps:
2. Android Embedder
Goal: Use WindowInsetsAnimation.Callback to receive smooth inset changes.
Set up callback:
Notes:
3. Flutter Engine / Framework
Goal: Update viewInsets dynamically so widgets react in real time.
4. Caveats & Maintenance
💡 Result:
Widgets using MediaQuery.viewInsets or bottom padding will now animate in perfect sync with the OS keyboard, eliminating the “bumpy jump.”
If you want, I can also write a ready-to-use Flutter plugin + embedder patch skeleton that implements this fully for iOS + Android. It would be almost plug-and-play for your apps.
ScreenRecording_08-23-2025.21-22-28_1.mov
justinmc commentedon Sep 25, 2025
CC @LongCatIsLooong from triage again, see #139054 (comment).