# What changed in react-native-keyboard-controller

> 106 changes in react-native-keyboard-controller 1 from its official release notes, upgrade guides and advisories: 3 breaking, 18 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/react-native-keyboard-controller/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## react-native-keyboard-controller 1

### Breaking changes

- The Android onConfigurationChanged parameter is now non-nullable, clarifying the callback’s parameter type for developers. (1.21.9) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.9)
- Toggling the module on or off no longer modifies edge-to-edge mode by default on Android. (1.21.5) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.5)
- Makes `scrollRectToVisible` a no-op on iOS. (1.21.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.0)

### New APIs and options

- Added the rounded prop to KeyboardEffects. (1.22.3) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.3)
- A new component lets you customize the keyboard background, including disabling translucency, applying brand colors, removing the default backdrop, and recreating the Siri / Apple Intelligence-style effect on iOS. (1.22.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.0)
- Exposes keyboardWindow on iOS. (1.21.14) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.14)
- Adds an onContentInsetChange callback to KeyboardChatScrollView. (1.21.7) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.7)
- Adds an onEndVisible callback to KeyboardChatScrollView. (1.21.7) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.7)
- KeyboardChatScrollView supports freeze as a SharedValue. (1.21.6) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.6)
- Adds a mode prop to KeyboardAwareScrollView. (1.21.4) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.4)
- Adds the `ClippingScrollView` component. (1.21.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.0)
- Adds the `automaticOffset` prop for `KeyboardAvoidingView`. (1.21.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.0)
- Adds the `blankSpace` prop to `KeyboardChatScrollView`. (1.21.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.0)
- Adds the `extraContentPadding` prop to `KeyboardChatScrollView`. (1.21.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.0)
- Introduces a new chat-oriented scroll view component. (1.21.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.0)
- Adds the `KeyboardToolbar.Group` component. (1.21.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.0)
- Adds the `ScrollViewWithBottomPadding` component. (1.21.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.0)
- Adds the useCombinedRef hook to logically separate the code. (1.20.7) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.20.7)
- Adds the ability to sync focused input layout from JavaScript. (1.20.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.20.0)
- Adds a compatibility-layer hook corresponding to the useAnimatedKeyboard hook from react-native-reanimated. (1.20.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.20.0)
- Adds KeyboardBackgroundView to the Android turbo package for React Native versions below 0.74. (1.19.6) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.19.6)

### Performance

- Skips per-frame `scrollTo` when the scroll view is detached. (1.22.7) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.7)
- Optimized the component's performance. (1.21.1) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.1)
- Improves `KeyboardAwareScrollView` performance. (1.21.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.0)

### Behavior and default changes

- Adds support for NestedScrollView in KeyboardAwareScrollView. (1.22.5) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.5)
- On Android, keyboard control is requested only when the keyboard will change its position. (1.22.2) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.2)
- KeyboardToolbar passes touches through. (1.21.6) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.6)
- Adds native detection of rounded keyboards. (1.21.4) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.4)
- Uses `contentInset` for `KeyboardAwareScrollView`. (1.21.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.0)

### Fixes and other changes

- Clears focus when dismiss is called while the keyboard is already hidden. (1.22.7) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.7)
- Accounts for non-edge-to-edge window offset. (1.22.7) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.7)
- Fixes a crash with reanimated 4.7+. (1.22.7) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.7)
- Fixes compatibility with react-navigation@8.x and Activity. (1.22.6) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.6)
- Fixes incorrect scrolling when the keyboard layout changes. (1.22.6) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.6)
- Clamps the scroll target at 0 when the view shrinks. (1.22.6) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.6)
- Fixes a memory leak in FocusedInputObserver on Android. (1.22.5) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.5)
- Fixes compatibility with Reanimated 4.6.0 in KeyboardChatScrollView. (1.22.5) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.5)
- Fixes KeyboardExtender recycling on iOS. (1.22.4) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.4)
- Fixes stuck subsequent animations caused by a stale keyboardLayoutGuide. (1.22.4) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.4)
- Skips the explicit kotlin-android plugin when AGP 9 built-in Kotlin is enabled. (1.22.4) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.4)
- Restores compatibility with Reanimated 3.0. (1.22.4) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.4)
- Keeps the StatusBar proxy alive on React Native 0.87. (1.22.4) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.4)
- Restores compatibility with old turbo packages. (1.22.4) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.4)
- Fixed an IllegalStateException on Android. (1.22.3) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.3)
- Fixed overscroll during interactive dismissal on iOS when using KeyboardChatScrollView. (1.22.3) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.3)
- Added compatibility with react-native-strict-api. (1.22.3) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.3)
- Focused input events inside Modal now use the propagation view surfaceId. (1.22.3) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.3)
- Fixed an iOS crash in onTextChangedHandler caused by an unpaired UTF-16 surrogate. (1.22.3) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.3)
- Fixes compatibility with reanimated bundle mode. (1.22.2) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.2)
- Fixes flaky behavior on iOS versions earlier than 16. (1.22.1) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.1)
- Fixes operation with OTP inputs. (1.22.1) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.1)
- Reconciles frozen chat keyboard padding. (1.21.14) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.14)
- Supports NestedScrollView in ClippingScrollViewDecoratorView. (1.21.14) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.14)
- Resets isInteractive when an interactive gesture ends without animateToFinish. (1.21.14) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.14)
- Fixes infinite recursion in forwardingTarget, preventing crashes. (1.21.13) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.13)
- Fixes a null-pointer exception in removeTextChangedListener, preventing crashes. (1.21.13) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.13)
- The first animatedProps evaluation in KeyboardChatScrollView and KeyboardAwareScrollView no longer emits contentOffset {0,0}. (1.21.12) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.12)
- Closing a Modal on Android no longer triggers undesired scrolling in KeyboardAwareScrollView. (1.21.12) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.12)
- Fixes KeyboardChatScrollView becoming non-scrollable when blankSpace is big. (1.21.12) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.12)
- Opening system windows on Android no longer causes stale animated values. (1.21.12) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.12)
- Adds the missing themedContext getter to prevent compilation errors on RN 0.87. (1.21.11) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.11)
- Fixes iOS builds. (1.21.10) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.10)
- Fixes missing scroll animation when switching between inputs. (1.21.10) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.10)
- Fixed a crash when KeyboardChatScrollView unmounts. (1.21.10) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.22.3), [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.10)
- Avoids illegal states on Android that could cause crashes. (1.21.8) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.8)
- Fixes a crash on Catalyst. (1.21.8) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.8)
- A crash in viewPositionInWindow is resolved. (1.21.7) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.7)
- Fixes inverted KeyboardChatScrollView breaking maintainVisibleScrollPosition. (1.21.6) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.6)
- Closes the keyboard even when it is partially visible. (1.21.6) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.6)
- Fixes scrolling up when the keyboard type changes. (1.21.4) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.4)
- Fixes a memory leak when the Activity restarts. (1.21.4) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.4)
- Fixed re-focusing after keyboard dismissal using a hardware button. (1.21.3) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.3)
- KeyboardExtender now respects UIDesignRequiresCompatibility. (1.21.3) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.3)
- Fixed a conflict between RefreshControl and KeyboardAwareScrollView or KeyboardChatScrollView. (1.21.3) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.3)
- Fixes a regression after optimization. (1.21.2) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.2)
- Removes the extra +1 padding. (1.21.2) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.2)
- Fixes the view collapsing to zero height inside auto-sizing parents. (1.21.2) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.2)
- Fixes scroll adjustment when extraContentPadding changes by a large amount. (1.21.2) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.2)
- Fixed the “could not find view for tag” warning in the component. (1.21.1) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.1)
- Fixes an access-before-initialization error. (1.21.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.0)
- Fixes non-working interactive keyboard dismissal. (1.21.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.0)
- Makes `KeyboardAvoidingView` more precise. (1.21.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.0)
- Fixes the `KeyboardAvoidingView` types union. (1.21.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.0)
- Fixes loss of ref identity in `KeyboardAwareScrollView`. (1.21.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.0)
- Automatically detects the top border of `KeyboardAwareScrollView`. (1.21.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.0)
- Fixes the `enabled` prop behavior for `KeyboardStickyView` on the Fabric architecture. (1.21.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.0)
- Handles broken `measureInWindow` behavior. (1.21.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.0)
- Addresses memory leaks on Android. (1.21.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.0)
- Fixes an incorrect `onInteractive` event when the keyboard is closed on iOS 26+ with an attached `KeyboardGestureArea`. (1.21.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.0)
- Fixes incorrect selection coordinates on focus. (1.21.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.21.0)
- Fixes compatibility with RN 0.70. (1.20.7) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.20.7)
- Dispatches did events manually on iOS, fixing incorrect animation on iOS 26 when cross fade transitions are enabled. (1.20.6) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.20.6)
- Fixed compilation errors when building on Windows. (1.20.5) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.20.5)
- Fixes navigation in iOS hybrid apps, improving stability on iOS 26. (1.20.4) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.20.4)
- Conditional code in KeyboardAvoidingView is now iOS specific. (1.20.3) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.20.3)
- Fixed a wrong super call in OverKeyboardView. (1.20.3) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.20.3)
- Fixes the wrong onEnd event on Samsung devices when the keyboard is shown after interactive dismissal. (1.20.2) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.20.2)
- Avoids undesired reloadInputViews during keyboard dismissal. (1.20.2) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.20.2)
- Fixes continuous warnings caused by the dependencies array changing size between renders when using KeyboardAwareScrollView. (1.20.1) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.20.1)
- Fixes a type mismatch for the dismiss method. (1.20.0) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.20.0)
- Fixes over-scrolling when bottomOffset changes dynamically. (1.19.6) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.19.6)
- Fixed the non-working onMove handler on iOS 26 in dev builds. (1.19.5) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.19.5)
- Fixes the non-working release version on iOS 26. (1.19.4) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.19.4)
- Matches StatusBar and edge-to-edge interoperability according to the latest spec. (1.19.4) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.19.4)
- Avoids calls that caused a crash in certain conditions. (1.19.3) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.19.3)
- Attaches the keyboard tracking view in advance and only when the window has changed, resolving a critical issue introduced in 1.19.1. (1.19.2) — [release notes](https://github.com/kirillzyusko/react-native-keyboard-controller/releases/tag/1.19.2)
