Skip to content

[Android] Incorrect lifecycle events emitted during an aborted interactive keyboard dismisal #1238

@iankberry

Description

@iankberry

Describe the bug

On Android, when you start an interactive keyboard dismissal but then "abort" it by dragging the keyboard back up, the keyboard remains open but events emitted from the library make it seem as if its closed.

More specifically, when the interactive dismissal starts, the following event is emitted (which makes sense):

 LOG  keyboardWillHide {"appearance": "light", "duration": -1, "height": 0, "target": -1, "timestamp": 1765383920657, "type": "default"}

However when the dismissal is aborted, a keyboardDidHide event is emitted so the keyboard appears to be closed even though it's still open.

 LOG  keyboardDidHide {"appearance": "light", "duration": -1, "height": 0, "target": -1, "timestamp": 1765383922508, "type": null}

For reference on iOS, no events are emitted when the interactive dismissal starts and the following are emitted when it aborts, which leaves it correctly in an open state:

 LOG  keyboardWillShow {"appearance": "light", "duration": 383, "height": 345.00000000000006, "target": 26, "timestamp": 1765385450528, "type": "default"}
 LOG  keyboardDidShow {"appearance": "light", "duration": 383, "height": 345, "target": 26, "timestamp": 1765385450530, "type": "default"}

Repo for reproducing

I'm re-using the repo used for a separate issue as it covers both cases.

https://github.com/iankberry/ios-interactive-keyboard-repro

To Reproduce

  1. Open the app
  2. Attempt to dismiss the keyboard by dragging down
  3. Before releasing, drag the keyboard back up to it's full height
  4. Release your finger and notice that the sticky keyboard view is now hidden beneath the keyboard

Expected behavior

The sticky view should remain above the keyboard while it is visible.

Screenshots

Screen.Recording.2025-12-10.at.11.30.26.AM.mov

Smartphone (please complete the following information):

  • Device: Android emulator and device
  • OS: Android 15
  • RN version: 0.81.5
  • RN architecture: fabric
  • JS engine: Hermes
  • Library version: 1.20.0

Metadata

Metadata

Assignees

Labels

repro providedIssue contains reproduction repository/code🐛 bugSomething isn't working👆 interactive keyboardAnything related to interactive keyboard dismissing🔥 AttentionAn issue, that requires attention (disturbs many users/has many reactions)🤖 androidAndroid specific

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions