diff --git a/lib/pangea/analytics_details_popup/analytics_details_popup.dart b/lib/pangea/analytics_details_popup/analytics_details_popup.dart index bb7bd6ecc..16fca4898 100644 --- a/lib/pangea/analytics_details_popup/analytics_details_popup.dart +++ b/lib/pangea/analytics_details_popup/analytics_details_popup.dart @@ -41,6 +41,7 @@ class ConstructAnalyticsViewState extends State { List? vocab; bool isSearching = false; + FocusNode searchFocusNode = FocusNode(); ConstructLevelEnum? selectedConstructLevel; StreamSubscription? _constructUpdateSub; @@ -65,6 +66,7 @@ class ConstructAnalyticsViewState extends State { void dispose() { searchController.dispose(); _constructUpdateSub?.cancel(); + searchFocusNode.dispose(); super.dispose(); } @@ -141,6 +143,14 @@ class ConstructAnalyticsViewState extends State { selectedConstructLevel = null; searchController.clear(); }); + + WidgetsBinding.instance.addPostFrameCallback((_) { + if (isSearching) { + FocusScope.of(context).requestFocus(searchFocusNode); + } else { + searchFocusNode.unfocus(); + } + }); } @override diff --git a/lib/pangea/analytics_details_popup/vocab_analytics_list_view.dart b/lib/pangea/analytics_details_popup/vocab_analytics_list_view.dart index d2da896be..1aa9cfe58 100644 --- a/lib/pangea/analytics_details_popup/vocab_analytics_list_view.dart +++ b/lib/pangea/analytics_details_popup/vocab_analytics_list_view.dart @@ -125,6 +125,7 @@ class VocabAnalyticsListView extends StatelessWidget { Expanded( child: TextField( autofocus: true, + focusNode: controller.searchFocusNode, controller: controller.searchController, decoration: const InputDecoration( contentPadding: EdgeInsets.symmetric(