From 5455b6f4c2b871689ddf63cc3668c1890f5729f8 Mon Sep 17 00:00:00 2001 From: Ming Chu Date: Thu, 1 Apr 2021 16:31:58 +0800 Subject: [PATCH] Add focus after submit --- lib/src/suggestions_textfield.dart | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lib/src/suggestions_textfield.dart b/lib/src/suggestions_textfield.dart index cd641c6..ee49d8d 100644 --- a/lib/src/suggestions_textfield.dart +++ b/lib/src/suggestions_textfield.dart @@ -36,9 +36,22 @@ class _SuggestionsTextFieldState extends State { double _fontSize; InputDecoration _inputDecoration; + FocusNode _focusNode; + + bool get _focusAfterSubmit { + return this.widget.tagsTextField.focusAfterSubmit ?? false; + } + @override void initState() { super.initState(); + _focusNode = FocusNode(); + } + + @override + void dispose() { + _focusNode.dispose(); + super.dispose(); } @override @@ -79,6 +92,7 @@ class _SuggestionsTextFieldState extends State { controller: _controller, enabled: widget.tagsTextField.enabled, autofocus: widget.tagsTextField.autofocus ?? true, + focusNode: _focusNode, keyboardType: widget.tagsTextField.keyboardType ?? null, textCapitalization: widget.tagsTextField.textCapitalization ?? TextCapitalization.none, @@ -146,6 +160,10 @@ class _SuggestionsTextFieldState extends State { if (onSubmitted != null) onSubmitted(str); _controller.clear(); } + + if (_focusAfterSubmit) { + _focusNode.requestFocus(); + } } ///Check onChanged @@ -185,6 +203,7 @@ class TagsTextField { this.constraintSuggestion = true, this.autocorrect, this.autofocus, + this.focusAfterSubmit, this.hintText, this.hintTextColor, this.suggestionTextColor, @@ -210,6 +229,8 @@ class TagsTextField { final bool constraintSuggestion; final bool lowerCase; final bool autofocus; + /// keep focus to TextField after submit, default is false + final bool focusAfterSubmit; final String hintText; final Color hintTextColor; final Color suggestionTextColor;