handleKeyEvent method
Handles incoming keyboard events to navigate and interact with the menu.
Implementation
void handleKeyEvent(KeyEvent event) {
if (!isOpen) {
if (event.key == ' ' || event.key == '\n' || event.key == 'down') {
openDropdown();
}
return;
}
if (event.key == 'down') {
setState(() {
selectedIndex = (selectedIndex + 1) % widget.items.length;
});
overlayEntry?._overlayState?.setState(() {});
} else if (event.key == 'up') {
setState(() {
selectedIndex =
(selectedIndex - 1 + widget.items.length) % widget.items.length;
});
overlayEntry?._overlayState?.setState(() {});
} else if (event.key == 'enter' || event.key == '\n' || event.key == ' ') {
selectItem(selectedIndex);
} else if (event.key == 'escape') {
closeDropdown();
}
}