PackageTrack
Sign in Get early access

keyboard_detection

A Flutter plugin to easily detect keyboard visibility using the bottom view inset.

0.8.1 11K downloads/mo #2789 most downloaded on pub.dev lamnhan066/keyboard_detection

What this package is like to depend on

Last release 11 months 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

1 release in the last 12 months

see the full history below

Release timeline

30 releases · Apr 2022 to Sep 2025
2023 2024 2025 2026
Release Pre-release

Releases

latest 30
  1. 0.8.1 03 Sep 2025
    Release notes
    • Replace addCallback with registerCallback.
    • Add unregisterCallback and unregisterAllCallbacks methods.
    • Improve the callback removal to avoid race conditions.
    • Improve the internal calculation to improve the perfomance.
    • Improve the example.
    Open source →
  2. 0.8.0 03 Apr 2025
    Release notes
    • Use View instead of MediaQuery to retrieve the bottom view inset (Thanks to @nazarrd for the idea).
    • Update docs, example and README.
    Open source →
  3. 0.7.3 23 Aug 2024
    Release notes
    • Avoid queuing too much checks (Fixes #3).
    Open source →
  4. 0.7.2 25 Jul 2024
    Release notes
    • Improve the way to get the bottom inset.
    • Update the size when the keyboard type is changed (Fixes #2).
    Open source →
  5. 0.7.1 06 May 2024
    Release notes
    • Improve the way to get the bottom inset.
    • Remove the screenshot to decrease the size of the package.
    • Update README.
    Open source →
  6. 0.7.0 20 Nov 2023
    Release notes
    • Update sdk version to >=3.0.0 <4.0.0.
    • Remove all deprecated methods and variables.
    • Change the variable name from isIncludeStartChanging to includeTransitionalState.
    Open source →
  7. 0.6.3 06 Oct 2023
    Release notes
    • Update comments.
    • Update homepage URL.
    Open source →
  8. 0.6.2 23 Jul 2023
    Release notes
    • Release to stable.
    • Add visibling and hiding to KeyboardState.
    • Add stateAsBool() to get the current keyboard state as bool
    • Change the parameter of onChanged from bool to KeyboardState.
    • Deprecated:
      • Change sdk version to ">=2.18.0 <4.0.0".
      • asStream => stream or addCallback
      • currentState => state as KeyboardState
      • keyboardSize => size
      • isKeyboardSizeLoaded => isSizeLoaded
      • ensureKeyboardSizeLoaded => ensureSizeLoaded
      • minDifferentSize no need to use
      • keyboardState no need to use
    Open source →
  9. 0.6.1 21 Jul 2023

    Nothing published for this version

  10. 0.6.0 21 Jul 2023

    Nothing published for this version

  11. 0.6.0-rc.5 11 Jul 2023 pre-release
    Release notes
    • Add method addCallback to add a callback to receive keyboard state changed events.
    Open source →
  12. 0.6.0-rc.4 10 Jul 2023 pre-release
    Release notes
    • Change from stateAsBool to stateAsBool([bool isIncludeStartChanging = false]).
    • Update screenshot.
    • Update README.
    Open source →
  13. 0.6.0-rc.3 07 Jul 2023 pre-release
    Release notes
    • Improve screenshot.
    Open source →
  14. 0.6.0-rc.2 07 Jul 2023 pre-release
    Release notes
    • ensureSizeLoaded is now return Future<void>.
    • Update README.
    Open source →
  15. 0.6.0-rc.1 07 Jul 2023 pre-release
    Release notes
    • Change sdk version to ">=2.18.0 <4.0.0" and flutter version ">=3.3.0".
    • Add visibling and hiding to KeyboardState
    • Deprecate minDifferentSize, asStream, currentState, keyboardState, keyboardSize, isKeyboardSizeLoaded, ensureKeyboardSizeLoaded
    • Add state, stateAsBool, size, isSizeLoaded, ensureSizeLoaded
    • Change the parameter of onChanged from bool to KeyboardState
    Open source →
  16. 0.5.2 03 Apr 2023
    Release notes
    • Update onChanged return type to void.
    • Use static variables to store keyboard size and ensure keyboard is loaded. (Just internal changing so don't affect to the current code).
    Open source →
  17. 0.5.1 29 Dec 2022
    Release notes
    • Fixes the issue related to Future already completed.
    Open source →
  18. 0.5.0 08 Nov 2022
    Release notes
    • Add ensureKeyboardSizeLoaded to KeyboardDetectionController to wait for the keyboard size asynchronous.
    • Increase min sdk version to 2.17.0.
    • Remove useless code.
    Open source →
  19. 0.4.2 20 May 2022
    Release notes
    • Changed minDifferentSize default value back to 0 to avoid laggy issue.
    Open source →
  20. 0.4.2+1 28 May 2022
    Release notes
    • Change LICENSE to MIT.
    Open source →
  21. 0.4.2+2 26 Jun 2022
    Release notes
    • Update README.
    Open source →
  22. 0.4.2+3 01 Aug 2022
    Release notes
    • Update dependencies.
    Open source →
  23. 0.4.1 19 May 2022
    Release notes
    • Fixed issue when using pushAndRemoveUntil to navigate to another page.
    Open source →
  24. 0.4.0 18 May 2022
    Release notes
    • [BREAKING CHANGE]: Removed timerDuration in KeyboardDetectionController.
    • The minDifferentSize now works correctly and responses right after the bottom view insets satified the condition. Default value now is set to 100.
    • Added keyboardSize and isKeyboardSizeLoaded to KeyboardDetectionController to get the keyboard size.
    Open source →
  25. 0.3.0 15 May 2022
    Release notes
    • Compatible with Flutter 3.0.
    • Changed from using Timer to didChangeMetrics for listening to the changing of the bottom view insets.
    • Added 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.
    • [Deprecated]: Don't need to use timerDuration in KeyboardDetectionController since this version.
    Open source →
  26. 0.2.1 06 May 2022
    Release notes
    • Auto close usused resources after dispose.
    Open source →
  27. 0.2.0 06 May 2022
    Release notes
    • Added 3 variables to 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.
    Open source →
  28. 0.1.0 03 May 2022
    Release notes
    • Bug fixed: Now keyboard visibility only notify one time when changed.

    • [BREAKING CHANGE]

      • Before:
      @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:
      
      • Now:
      @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:
      
    Open source →
  29. 0.0.1 29 Apr 2022

    Nothing published for this version

  30. 0.0.1+1 29 Apr 2022
    Release notes
    • Initial release.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive