Open
Conversation
Contributor
📊 Package size report
|
5097947 to
abfb5b7
Compare
78073c7 to
0cfd049
Compare
0cfd049 to
c3d74ea
Compare
kirillzyusko
added a commit
that referenced
this pull request
Dec 12, 2025
…after interactive dismissal (#1240) ## 📜 Description Fixed wrong event for "end" keyboard movement after interactive dismissal (when keyboard gets shown after interaction). ## 💡 Motivation and Context Originally reported by @pioner92 months ago and later raised as an issue by @iankberry It's a known issue that in `onEnd` we may get out-of-dated keyboard frame metrics. The fix that I used earlier was postponing the event a little bit if it was interactive dismissal. It fixed the issue for my pixel device in #814 However if we test Samsung device we can clearly see that the bug is reproducible again. In this PR I'm continue to use the idea introduced in #814 and just use larger delay. It fixes the problem, but I'll conduct an exploration for a better/more synchronous code. I started this investigation in #1017 and I plan to return to this PR soon 👀 (but for now we'll merge a workaround) Closes #1238 ## 📢 Changelog <!-- High level overview of important changes --> <!-- For example: fixed status bar manipulation; added new types declarations; --> <!-- If your changes don't affect one of platform/language below - then remove this platform/language --> ### JS - added `onEnd` handler in "Interactive Keyboard" example ### Android - added `UIThread` constants; - use `.postDelayed()` instead of `.post()` with one frame delay; ## 🤔 How Has This Been Tested? Tested manually on Samsung S25+, Android 15 (Remote test lab) in example app. ## 📸 Screenshots (if appropriate): |Before|After| |-------|-----| |<video src="https://github.com/user-attachments/assets/45e63086-e49f-4b53-b4c1-647045021709">|<video src="https://github.com/user-attachments/assets/bafc21c1-49f3-4ea0-a248-1d587feedfbc">| ## 📝 Checklist - [x] CI successfully passed - [x] I added new mocks and corresponding unit-tests if library API was changed
c3d74ea to
a284579
Compare
Contributor
|
```
onKeyboardMove {target: -1, height: 250.90908813476562, duration: 0, progress: 1, eventName: 'onKeyboardMove'}
console.js:661 onKeyboardMoveEnd {target: -1, height: 250.90908813476562, duration: 0, progress: 1, eventName: 'onKeyboardMoveEnd'}
console.js:661 onKeyboardMove {target: -1, height: 0, duration: 0, progress: 0, eventName: 'onKeyboardMove'}
console.js:661 onKeyboardMoveEnd {target: -1, height: 0, duration: 0, progress: 0, eventName: 'onKeyboardMoveEnd'}
```
using native driver can coalesce to height: 250.90908813476562 which is technically incorrect
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
To Do
📜 Description
Fixed an issue when system windows (share bottom sheet, Modals, etc.) closes keyboard and these events are not propagated to JS.
💡 Motivation and Context
On Android 16 callback methods, such as
onStart/onMove/onEndmay not be invoked at all, when system sheet (Share etc.) closes a keyboard.Closes #1006
📢 Changelog
Android
isTransitioninginsideonPrepare;insetstogetCurrentKeyboardHeightfor reading actual keyboard height frominsets(not root view);🤔 How Has This Been Tested?
Tested manually on:
📸 Screenshots (if appropriate):
Screen.Recording.2026-04-13.at.13.01.42.mov
Screen.Recording.2026-04-13.at.12.51.16.mov
Modal show causes a keyboard close
📝 Checklist