Skip to content

Fix: reserve bottom inset so system IME bar doesn't cover bottom row - #148

Open
miroyong wants to merge 1 commit into
gazlaws-dev:masterfrom
miroyong:fix/ime-bar-covering-bottom-row
Open

Fix: reserve bottom inset so system IME bar doesn't cover bottom row#148
miroyong wants to merge 1 commit into
gazlaws-dev:masterfrom
miroyong:fix/ime-bar-covering-bottom-row

Conversation

@miroyong

Copy link
Copy Markdown

Problem

The keyboard fills its full window height, so the bottom row of keys sits flush against the bottom of the screen — right underneath the system IME bar (the one with the arrow to hide the keyboard and the language globe). On devices/nav modes where that bar overlays the bottom of the IME, the bottom row of keys gets covered.

Fix

In KeyboardLayoutView, read the system's bottom window inset (nav/IME bar height) via onApplyWindowInsets (with a fallback in onAttachedToWindow via getRootWindowInsets), and reserve that space in onLayout so the bottom row stays visible above the bar.

  • If the system reports no inset (e.g. legacy 3-button nav without the bar), bottomInset stays 0 and behavior is unchanged.
  • The total keyboard height is unchanged; only the content is raised enough to avoid being hidden under the bar.

Verification

Compiled a debug APK successfully (aapt2 arm64). Manual testing on device recommended to confirm the bottom row is no longer covered.

The keyboard fills its full window height, so the bottom row of keys sits
flush against the bottom of the screen, underneath the system IME bar
(arrow-to-hide + language globe). Reserve the system's bottom window inset
in KeyboardLayoutView so the bottom row stays visible above that bar.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant