NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #2806 most downloaded on pub.dev
A Flutter plugin to easily detect keyboard visibility using the bottom view inset.
Last release 1 years ago
03 Sep 2025
Ships fairly regularly
a new release about every 3 months
Most releases are documented
notes for 22 of 25 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
30 releases · first in 2022
One column per quarter.
Replace addCallback with registerCallback.
addCallback with registerCallback.unregisterCallback and unregisterAllCallbacks methods.Use View instead of MediaQuery to retrieve the bottom view inset (Thanks to @nazarrd for the idea).
View instead of MediaQuery to retrieve the bottom view inset (Thanks to @nazarrd for the idea).Avoid queuing too much checks (Fixes #3).
Improve the way to get the bottom inset.
Improve the way to get the bottom inset.
Remove all deprecated methods and variables.
>=3.0.0 <4.0.0.isIncludeStartChanging to includeTransitionalState.* Update comments. * Update homepage URL.
Add visibling and hiding to KeyboardState.
visibling and hiding to KeyboardState.stateAsBool() to get the current keyboard state as boolonChanged from bool to KeyboardState.asStream => stream or addCallbackcurrentState => state as KeyboardStatekeyboardSize => sizeisKeyboardSizeLoaded => isSizeLoadedensureKeyboardSizeLoaded => ensureSizeLoadedminDifferentSize no need to usekeyboardState no need to useNothing published for this version
Nothing published for this version
Add method addCallback to add a callback to receive keyboard state changed events.
addCallback to add a callback to receive keyboard state changed events.Change from stateAsBool to stateAsBool([bool isIncludeStartChanging = false]).
stateAsBool to stateAsBool([bool isIncludeStartChanging = false]).* Improve screenshot.
ensureSizeLoaded is now return Future .
ensureSizeLoaded is now return Future<void>.Deprecate minDifferentSize, asStream, currentState, keyboardState, keyboardSize, isKeyboardSizeLoaded, ensureKeyboardSizeLoaded
minDifferentSize, asStream, currentState, keyboardState, keyboardSize, isKeyboardSizeLoaded, ensureKeyboardSizeLoadedstate, stateAsBool, size, isSizeLoaded, ensureSizeLoadedonChanged from bool to KeyboardStateUpdate onChanged return type to void.
onChanged return type to void.Fixes the issue related to Future already completed.
Future already completed.Add ensureKeyboardSizeLoaded to KeyboardDetectionController to wait for the keyboard size asynchronous.
ensureKeyboardSizeLoaded to KeyboardDetectionController to wait for the keyboard size asynchronous.2.17.0.Changed minDifferentSize default value back to 0 to avoid laggy issue.
minDifferentSize default value back to 0 to avoid laggy issue.* Change LICENSE to MIT.
* Update README.
* Update dependencies.
Fixed issue when using pushAndRemoveUntil to navigate to another page.
pushAndRemoveUntil to navigate to another page.[BREAKING CHANGE]: Removed timerDuration in KeyboardDetectionController.
timerDuration in KeyboardDetectionController.minDifferentSize now works correctly and responses right after the bottom view insets satified the condition. Default value now is set to 100.keyboardSize and isKeyboardSizeLoaded to KeyboardDetectionController to get the keyboard size.[Deprecated]: Don't need to use timerDuration in KeyboardDetectionController since this version.
Timer to didChangeMetrics for listening to the changing of the bottom view insets.minDifferentSize parameter to KeyboardDetectionController, now you can set the minimum changed of size between two checks to detect the keyboard visibility. Default value is 0.timerDuration in KeyboardDetectionController since this version.Auto close usused resources after dispose.
Added 3 variables to KeyboardDetectionController to get the current state of the keyboard visibility:
KeyboardDetectionController to get the current state of the keyboard visibility:
currentState: the current state of the keyboard visibility return in bool? (null: unknown, true: visible, false: hidden).keyboardState: the current state of the keyboard visibility return in enum KeyboardState (unknown: unknown, visible: visible, hidden: hidden).asStream to listen for keyboard visibility changing events in bool.Bug fixed: Now keyboard visibility only notify one time when changed.
Bug fixed: Now keyboard visibility only notify one time when changed.
[BREAKING CHANGE]
@override
Widget build(BuildContext context) {
return MaterialApp(
home: KeyboardDetection(
timerDuration: const Duration(milliseconds: 10),
onChanged: (value) {
print('Is Keyboard Opened: $value');
setState(() {
isKeyboardOpened = value;
});
},
child:
@override
Widget build(BuildContext context) {
return MaterialApp(
home: KeyboardDetection(
controller: KeyboardDetectionController(
timerDuration: const Duration(milliseconds: 10),
onChanged: (value) {
print('Is Keyboard Opened: $value');
setState(() {
isKeyboardOpened = value;
});
},
),
child:
Nothing published for this version
* Initial release.
Your coding agent can read these notes before it upgrades. Set up the MCP server →