keyboard_insets 0.1.2
keyboard_insets: ^0.1.2 copied to clipboard
A Flutter plugin that provides real-time keyboard height and visibility state across platforms.
0.1.2 #
[keyboard_insets_mobile] - Use Swift concurrency @MainActor for public C entry points to avoid crashes on iOS 26
0.1.1 #
[keyboard_insets_mobile] - Fixed a bug with triggering the keyboard observer in JNI. [keyboard_insets_mobile] - Fixed the safe area bottom padding exceeding the native Flutter padding on Android.
0.1.0+1 #
[Docs] Fixed README.md file columns.
0.1.0 #
✨ Initial release of Main plugin (public API + widget layer) #
Features
-
Real-time keyboard height updates
- Emits keyboard height on every animation frame.
- Stays perfectly in sync with native animations.
-
Keyboard state stream
- Provides visibility (
isVisible) and animation (isAnimating) status. - Automatically starts/stops native listeners when streams are active or paused.
- Provides visibility (
-
Persistent Safe Area API
- Added
PersistentSafeAreaBottomfor real-time bottom safe area tracking. - Stays stable during keyboard animations.
- Exposes:
ValueNotifier<double>? safeAreastartObserving()stopObserving()
- Added
-
PersistentSafeArea widget
- A drop-in alternative to Flutter’s
SafeAreathat keeps bottom padding stable while the keyboard animates. - Supports manual or automatic lifecycle handling via
handleObserver.
- A drop-in alternative to Flutter’s
-
Cross-platform support
- iOS: Uses native UIKit safe area and keyboard frame observers.
- Android: Uses
WindowInsetsAnimationCompatfor high-frequency keyboard insets. - Web: Fallback implementation using browser viewport APIs.
🧩 Packages #
This release introduces a modular architecture:
| Package | Description |
|---|---|
keyboard_insets |
Main plugin (public API + widget layer) |
keyboard_insets_mobile |
Native iOS + Android FFI implementations |
keyboard_insets_web |
Web fallback implementation |
keyboard_insets_platform_interface |
Shared platform interface |