Search packages, repositories and app categories

GitHub repositoryPegasisForever/keep_keyboard_popup_menu

keep_keyboard_popup_menu

A Flutter popup menu that will keep keyboard open.

keep_keyboard_popup_menu project cover
Stars
8
Forks
15
Last push (UTC)
Jun 26, 2024
Project status
Archived

Original README

English project snapshot. Visit GitHub for the latest content.

This Library was meant for an old version of flutter (v1) and doesn't work on the new version!

keep_keyboard_popup_menu

A popup menu that will keep the soft keyboard open. This package is created to solve issue #24843 and #50567.

How Does It Work?

Unlike the popup menu created by PopupMenuButton, which works by pushing a new route to the navigator and causes the soft keyboard to hide, the popup menu created by this package works by adding an entry to Overlay and will keep the soft keyboard open.

Quick Start

(I'm sorry for the long names, please pr if there are shorter alternatives.)

KeepKeyboardPopupMenuItem

Intended to replace PopupMenuItem. Works similarly to a ListTile. PopupMenuItem won't work with this package because it will pop the current route when tapped. (This package shows popup menu using overlay, not route.)

KeepKeyboardPopupMenuItem(
    child: Text('awa'),
    onTap: () {},
)

KeepKeyboardPopupMenuButton

Intended to replace PopupMenuButton. Despite the similar name, the usage is quite different. The closePopup passed to the menuItemBuilder is used to programmatically close the popup.

KeepKeyboardPopupMenuButton(
    menuItemBuilder: (context, closePopup) => [
        KeepKeyboardPopupMenuItem(
            child: Text('awa'),
            onTap: closePopup,
        ),
    ]
)

You can also use the menuBuilder property to show any widget you want in the popup menu. For details, see the documentation and example.

WithKeepKeyboardPopupMenu

WithKeepKeyboardPopupMenu allows opening a popup menu on any widget.

WithKeepKeyboardPopupMenu(
    menuItemBuilder: (context, closePopup) => [
        KeepKeyboardPopupMenuItem(
            child: Text('awa'),
            onTap: closePopup,
        ),
    ],
    childBuilder: (context, openPopup) => ElevatedButton(
        onPressed: openPopup,
        child: Text('Custom Trigger'),
    ),
    
)

You can also use the menuBuilder property to show any widget you want in the popup menu, use backgroundBuilder property to customize background of the popup menu, and calculatePopupPosition property to customize the position of the popup menu. For details, see the documentation and example.

Jianqing Liu GitHub avatar
GitHub author

Jianqing Liu ↗

Figured out SWE before LLMs \\  Co-authoring a better future

Ontario, CanadaOfficial website ↗
LanguagesDartSwiftKotlinObjective-C

Packages published by this repository

Dependencies used

Dependency list 2 items

How do I choose a repository?

Start with your use case, compare repository activity, and check the original project before adopting it.

  1. Search by repository name, owner or description, then narrow the results by topic.
  2. Compare stars, forks and recent pushes. Stars show community interest, not a guarantee of quality.
  3. Read the README, license and issues on GitHub before using a project.

Sources and maintenance

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗