fix DropdownMenu
keyboard navigation when entries are filtered empty (#155252)
fixes https://github.com/flutter/flutter/issues/154532
This commit is contained in:
parent
cc7f76cf35
commit
ce2fe59bbb
@ -807,6 +807,7 @@ class _DropdownMenuState<T> extends State<DropdownMenu<T>> {
|
||||
} else {
|
||||
filteredEntries = widget.dropdownMenuEntries;
|
||||
}
|
||||
_menuHasEnabledItem = filteredEntries.any((DropdownMenuEntry<T> entry) => entry.enabled);
|
||||
|
||||
if (_enableSearch) {
|
||||
if (widget.searchCallback != null) {
|
||||
|
@ -1315,6 +1315,28 @@ void main() {
|
||||
expect(tester.takeException(), isNull);
|
||||
});
|
||||
|
||||
// Regression test for https://github.com/flutter/flutter/issues/154532.
|
||||
testWidgets('Searching for non matching item does not crash', (WidgetTester tester) async {
|
||||
await tester.pumpWidget(MaterialApp(
|
||||
home: Scaffold(
|
||||
body: DropdownMenu<TestMenu>(
|
||||
enableFilter: true,
|
||||
requestFocusOnTap: true,
|
||||
dropdownMenuEntries: menuChildren,
|
||||
),
|
||||
),
|
||||
));
|
||||
|
||||
// Open the menu.
|
||||
await tester.tap(find.byType(DropdownMenu<TestMenu>));
|
||||
await tester.pump();
|
||||
await tester.enterText(find.byType(TextField).first, 'Me');
|
||||
await tester.pumpAndSettle();
|
||||
await tester.enterText(find.byType(TextField).first, 'Meu');
|
||||
await tester.pumpAndSettle();
|
||||
expect(tester.takeException(), isNull);
|
||||
});
|
||||
|
||||
// Regression test for https://github.com/flutter/flutter/issues/147253.
|
||||
testWidgets('Default search prioritises the current highlight on desktop platforms',
|
||||
(WidgetTester tester) async {
|
||||
|
Loading…
x
Reference in New Issue
Block a user