npm / react-native-keyboard-controller
react-native-keyboard-controller
What changed in react-native-keyboard-controller 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.
3 breaking18 new APIs and options3 performance5 behavior and defaults77 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initreact-native-keyboard-controller 1106 changes
Breaking changes 3
The Android onConfigurationChanged parameter is now non-nullable, clarifying the callback’s parameter type for developers.
Toggling the module on or off no longer modifies edge-to-edge mode by default on Android.
Makes
scrollRectToVisiblea no-op on iOS.
New APIs and options 18
Added the rounded prop to KeyboardEffects.
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.
Exposes keyboardWindow on iOS.
Adds an onContentInsetChange callback to KeyboardChatScrollView.
Adds an onEndVisible callback to KeyboardChatScrollView.
KeyboardChatScrollView supports freeze as a SharedValue.
Adds a mode prop to KeyboardAwareScrollView.
Adds the
ClippingScrollViewcomponent.Adds the
automaticOffsetprop forKeyboardAvoidingView.Adds the
blankSpaceprop toKeyboardChatScrollView.Adds the
extraContentPaddingprop toKeyboardChatScrollView.Introduces a new chat-oriented scroll view component.
Adds the
KeyboardToolbar.Groupcomponent.Adds the
ScrollViewWithBottomPaddingcomponent.Adds the useCombinedRef hook to logically separate the code.
Adds the ability to sync focused input layout from JavaScript.
Adds a compatibility-layer hook corresponding to the useAnimatedKeyboard hook from react-native-reanimated.
Adds KeyboardBackgroundView to the Android turbo package for React Native versions below 0.74.
Performance 3
Skips per-frame
scrollTowhen the scroll view is detached.Optimized the component's performance.
Improves
KeyboardAwareScrollViewperformance.
Behavior and default changes 5
Adds support for NestedScrollView in KeyboardAwareScrollView.
On Android, keyboard control is requested only when the keyboard will change its position.
KeyboardToolbar passes touches through.
Adds native detection of rounded keyboards.
Uses
contentInsetforKeyboardAwareScrollView.
Fixes and other changes 77
Clears focus when dismiss is called while the keyboard is already hidden.
Accounts for non-edge-to-edge window offset.
Fixes a crash with reanimated 4.7+.
Fixes compatibility with react-navigation@8.x and Activity.
Fixes incorrect scrolling when the keyboard layout changes.
Clamps the scroll target at 0 when the view shrinks.
Fixes a memory leak in FocusedInputObserver on Android.
Fixes compatibility with Reanimated 4.6.0 in KeyboardChatScrollView.
Fixes KeyboardExtender recycling on iOS.
Fixes stuck subsequent animations caused by a stale keyboardLayoutGuide.
Skips the explicit kotlin-android plugin when AGP 9 built-in Kotlin is enabled.
Restores compatibility with Reanimated 3.0.
Keeps the StatusBar proxy alive on React Native 0.87.
Restores compatibility with old turbo packages.
Fixed an IllegalStateException on Android.
Fixed overscroll during interactive dismissal on iOS when using KeyboardChatScrollView.
Added compatibility with react-native-strict-api.
Focused input events inside Modal now use the propagation view surfaceId.
Fixed an iOS crash in onTextChangedHandler caused by an unpaired UTF-16 surrogate.
Fixes compatibility with reanimated bundle mode.
Fixes flaky behavior on iOS versions earlier than 16.
Fixes operation with OTP inputs.
Reconciles frozen chat keyboard padding.
Supports NestedScrollView in ClippingScrollViewDecoratorView.
Resets isInteractive when an interactive gesture ends without animateToFinish.
Fixes infinite recursion in forwardingTarget, preventing crashes.
Fixes a null-pointer exception in removeTextChangedListener, preventing crashes.
The first animatedProps evaluation in KeyboardChatScrollView and KeyboardAwareScrollView no longer emits contentOffset {0,0}.
Closing a Modal on Android no longer triggers undesired scrolling in KeyboardAwareScrollView.
Fixes KeyboardChatScrollView becoming non-scrollable when blankSpace is big.
Opening system windows on Android no longer causes stale animated values.
Adds the missing themedContext getter to prevent compilation errors on RN 0.87.
Fixes iOS builds.
Fixes missing scroll animation when switching between inputs.
Fixed a crash when KeyboardChatScrollView unmounts.
Avoids illegal states on Android that could cause crashes.
Fixes a crash on Catalyst.
A crash in viewPositionInWindow is resolved.
Fixes inverted KeyboardChatScrollView breaking maintainVisibleScrollPosition.
Closes the keyboard even when it is partially visible.
Fixes scrolling up when the keyboard type changes.
Fixes a memory leak when the Activity restarts.
Fixed re-focusing after keyboard dismissal using a hardware button.
KeyboardExtender now respects UIDesignRequiresCompatibility.
Fixed a conflict between RefreshControl and KeyboardAwareScrollView or KeyboardChatScrollView.
Fixes a regression after optimization.
Removes the extra +1 padding.
Fixes the view collapsing to zero height inside auto-sizing parents.
Fixes scroll adjustment when extraContentPadding changes by a large amount.
Fixed the “could not find view for tag” warning in the component.
Fixes an access-before-initialization error.
Fixes non-working interactive keyboard dismissal.
Makes
KeyboardAvoidingViewmore precise.Fixes the
KeyboardAvoidingViewtypes union.Fixes loss of ref identity in
KeyboardAwareScrollView.Automatically detects the top border of
KeyboardAwareScrollView.Fixes the
enabledprop behavior forKeyboardStickyViewon the Fabric architecture.Handles broken
measureInWindowbehavior.Addresses memory leaks on Android.
Fixes an incorrect
onInteractiveevent when the keyboard is closed on iOS 26+ with an attachedKeyboardGestureArea.Fixes incorrect selection coordinates on focus.
Fixes compatibility with RN 0.70.
Dispatches did events manually on iOS, fixing incorrect animation on iOS 26 when cross fade transitions are enabled.
Fixed compilation errors when building on Windows.
Fixes navigation in iOS hybrid apps, improving stability on iOS 26.
Conditional code in KeyboardAvoidingView is now iOS specific.
Fixed a wrong super call in OverKeyboardView.
Fixes the wrong onEnd event on Samsung devices when the keyboard is shown after interactive dismissal.
Avoids undesired reloadInputViews during keyboard dismissal.
Fixes continuous warnings caused by the dependencies array changing size between renders when using KeyboardAwareScrollView.
Fixes a type mismatch for the dismiss method.
Fixes over-scrolling when bottomOffset changes dynamically.
Fixed the non-working onMove handler on iOS 26 in dev builds.
Fixes the non-working release version on iOS 26.
Matches StatusBar and edge-to-edge interoperability according to the latest spec.
Avoids calls that caused a crash in certain conditions.
Attaches the keyboard tracking view in advance and only when the window has changed, resolving a critical issue introduced in 1.19.1.